본문 바로가기

분류 전체보기31

팩토리 메서드 패턴, 추상 팩토리 패턴 팩토리 메서드 패턴 팩토리 자체는 패턴이라기 보다는 하나의 방식? 에 불과하다. 그래서 간단한 팩토리는 따로 패턴이라고 하지 않는다. 팩토리 매서드라고 부른다. ex)피자클래스{피자 생성자 (인수) {인수에 맞춰서 변수를 배치},변수들 (토핑들, 도우 종류, 굽기, 치즈 종류 등)}에서. 피자 생성자만 아예 빼버리면? 클래스 Simple피자스토어(피자를 변수로 받음){생성자 (피자){피자에 맞춰서 도우나, 기타 요소 삽입하는 생성자로 매핑해줌}} 즉, 단순한 래퍼클래스에 불과하게 된다. 그래서 팩토리 메서드라고 부르고, 탬플릿 클래스 생성자 같은 느낌이다. 예전에 PerpectForwarding 할때 그거이렇게 생성자 부분만 빼는건 생성자 매핑해서 호출하는거에 불과하고 팩토리매서드 패턴은 팩토리메서드와 .. 2025. 5. 11.
데코레이터 패턴 데코레이터 패턴 주어진 상황, 용도에 따라 어떤 객체에 기능을 덧붙이는 패턴으로, 기능 확장이 필요할 때 추가 요소를 동적으로 더하는 방식.상속, 서브클래스를 만드는 것과의 차이 → 유연성, 기존 코드 수정할 필요 없음, 구성,위임으로 실행중에 새 행동을 추가, 자잘한 객체가 필요 이상으로 추가될 수 있음, 구성요소의 클라이언트 입장에서는 데코레이터의 존재를 알 수 없음+ 특정 형식에 의존하면 안됨. Component : 실질적인 인스턴스를 컨트롤하는 역할. 클라이언트는 컴포넌트를 통해 실제 기능을 사용.기본 기능인 콘크리트컴포넌트와 추가 기능인 Decorator의 공통 기능을 정의 ConcreteComponent : Component의 실질적인 인스턴스의 부분으로 책임의 주체의 역할. 기본 기능 De.. 2025. 5. 11.
옵저버 패턴 2. 옵저버 패턴정의: 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고, 자동으로 내용이 갱신되는 방식으로, 일대다(one-to-many) 의존성. 느슨함. (이후 등장할 모델-뷰 패턴과 비교해보자)Subject(주제) 와 Observer(옵저버. 다수) 간의 연결이며, 퍼블리싱-섭스크라이브 형태이다.서브젝트에 옵저버 리스트가 있고 언제나 리스트에 다른 옵저버를 추가할 수 있고, 옵저버인 객체가 서브젝트를 구독하고, 구독취소를 할 수도 있다.일반적으로는 주제에서 푸쉬방식으로 옵저버들에게 노티를 보내는데, 옵저버에서 주제를 풀 하기도 한다. (이것이 좀 더 좋은 방식이라고 생각한다. 정체를 밝히고 필요 데이터만 받아가니까.)옵저버가 될 가능성이 있으면 옵저버 인터페이스를 구현하고,.. 2025. 5. 11.
스트레티지 패턴 1. 스트레티지 패턴정의: 알고리즘군을 정의하고 각각을 캡슐화 하여 바꿔 쓸 수 있게 만든다. 스트래티지 패턴을 이용하면 알고리즘을 활용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있다.부모 클래스를 상속해서 유사클래스들을 만들 때, 특정 기능만이 변경되는 상황느슨한 결합으로 변경될 가능성이 있는 기능(Behavior)을 인터페이스로 분리하는 것비헤이비어 인터페이스를 미리 구상화 해서 여려 타입의 기능을 만들고 그것들을 조합기능별 알고리즘 군이 만들어 지고 이것이 캡슐화 되므로 인터페이스로 호출해서 유사클래스를 핸들링 가능함 (ex) CAnimal: I어택Behavior, I이동Behavior 로 분리해서 할퀴기,물기 / 4족보행,날기 클래스를 만들어 놓음. 추후 개별 Behavior에 대해서 한 .. 2025. 5. 11.
디자인패턴 오버뷰 기본적으로 객체지향의 기초를 조합했을 때 나타나는 몇 가지 패턴들을 정리한 것.장점 : 매번 객체지향 조건을 하나씩 따질 필요가 없다(보장됨), 소통이 편해진다, 멋있다, 규격화된다!단점 : 패턴병 → 생산성 저하, 복잡도 증가, 완전히 일치하지 않을 때도 있음. 망치만 들면 모든 게 못으로 보인다. 간단하고, 작동하면, 놔두자.용어:구상 = 추상의 반대말(Concrete)구성 = 직접 함수들을 정의하는 게 구현, 인터페이스나 추상 클래스를 상속해서 미리 정의된 메서드에 따라 내용만을 구현, 혹은 그대로 쓰는 게 구성. 상속받은 것들만 봐도 이 클래스가 뭘 하는 클래스인지 한눈에 알 수 있다. 객체지향 기초추상화, 캡슐화, 다형성, 상속객체지향 원칙 SOLID 5원칙 (SRP - 단일 책임 원칙 /OC.. 2025. 5. 11.
2025/05/06 블로그 시작 기술블로그 운영 계획주요 분야는 언리얼엔진5, 언리얼C++, 수학, 공학, 그래픽스, 게임 2025. 5. 11.