'CS/디자인 패턴' 카테고리의 글 목록
본문 바로가기
728x90

CS/디자인 패턴4

팩토리 패턴(factory pattern) 팩토리 패턴(factory pattern) 팩토리 패턴을 사용하는 이유 다형성은 높이고 의존성 낮추기 위해서이다. 구상 클래스, 추상 클래스, 인터페이스 사용 이유 new 연산자를 사용해 인스턴스를 구현하면 나중에 코드를 수정해야 할 가능성이 커지고, 유연성이 떨어집니다. 그래서 상위 형식에 맞춰서 프로그래밍합니다. (인터페이스에 맞춰서 프로그래밍한다.) 실제 실행 시에 쓰이는 객체가 코드에 공정되지 않도록 상위 형식(supertype)에 맞춰 프로그래밍해서 다형성을 활용해야 한다는 점 변수를 선언할 때 보통 추상 클래스나 인터페이스 같은 상위 형식으로 선언해야 한다. 객체를 변수에 대입할 때 상위 형식을 구체적으로 구현한 형식이라면 어떤 객체든 넣을 수 있기 때문이다. 그러면 "변수를 선언하는 클래스에.. 2023. 1. 13.
싱글톤 패턴 (Singleton) 싱글톤 패턴 (Singleton) 클래스의 인스턴스가 하나임을 보장하고 접근할 수 있는 전역적인 접근점을 제공하는 패턴 장점 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성하는데 드는 비용이 줄어든다. 자원을 많이 잡아먹는 인스턴스가 있다면 유용하다. 단점 의존성이 높다. -> 의존성 주입(DI, Dependency Injection)을 통해 모듈 간의 결합을 조금 더 느슨하게 만들어 해결할 수 있다. TDD -> 단위 테스트는 서로 독립적이어야 하며 어떤 순서로든 실행할 수 있어야 한다. 싱글톤 패턴은 테스트마다 독립적인 인스턴스를 만들기 어렵다. 싱글톤이 깨지는 경우 멀티스레딩 -> 동기화 필요 클래스 로더가 2개 이상일 때 -> 클래스 로더를 직.. 2023. 1. 12.
디자인 패턴 소프트웨어 디자인에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 특정한 상황에 맞게 사용될 수 있는 구조적 문제들을 해결하는데 쓰이는 서술이나 템플릿. 디자인 패턴은 외우기보다는 어떠한 패턴이 있는지 알고 수많은 디자인 패턴에서 다양한 코딩 노하우를 습득하는것이 중요하다고 생각합니다. "이 코드에는 무조건 이 패턴을 적용시킬거야!" 이것이 아니라 여러가지 패턴이 자연스럽게 내 코드에 녹아드는것이 좋다고 생각합니다. 출처 : https://coding-factory.tistory.com/708 즉, 모든 곳에 패턴을 적용하려고 하면 안 된다. 디자인 패턴의 종류 생성(Creational) 패턴 객체 생성에 관련된 패턴 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램.. 2023. 1. 11.
MVC pattern MVC패턴은 디자인 패턴 중 하나이다. 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하며 특정한 "규약"을 통해 쉽게 유지보수하고 또 다른 이들과 공유할 때 쉽게 하기 위함 MVC는 Model, View, Controller의 약자로 크게 세 가지 역할로 구분한 패턴이다. Model 사용자가 원하는 모든 데이터를 가지고 있어야 하며, 어떤 데이터를 보여 줄지 정의 데이터 변경이 일어났을 때 뷰를 참조하는 내부 속성 값(모델에서 직접 수정)을 가지면 안 된다. 데이터 변경이 일어났을 때 이벤트를 발생시켜야 하며, 이를 수신할 수 있는 처리 방법을 구현 재사용 가능하게 구현 CRUD 작업 담당 View 데이터를 보여주는 방식을 정의 모델이 가지고 있는 데이터를 따로 저장해서는 안된다. 데이터를 받으면.. 2021. 7. 2.
728x90