반응형 까망 동네/디자인 패턴27 [디자인 패턴] GRASP 객체지향 GRASP 란• General Responsibility Assignment Software Patterns• 객체 지향은 책임 역할 각 객체에 부여하는 것 1) Information Expert2)Creator3)Controller4) Low Coupling5) High Cohesion6) Polymorphism7) Pure Fabrication8) Indirection9) Protected VariationsInformation Expert• 정보를 가지고 있는 객체에 역할을 부여하자 .• 객체는 데이터와 처리 로직을 함께 관리• 데이터를 감추고자 하면 내부에서만 로직을 처리하고 외부에는 기능만 제공 Creator• 객체의 context 알고 있는 다른 객체가 있다면 해당 객체에 생성 부여→ A 객.. 2024. 11. 12. [객체 지향] IS-A 관계와 HAS-A 관계 IS-A상속 관계에서 주로 사용된다.상속은 상위 클래스를 구체화한다. (동물) - (사람), (개) (고양이), (원숭이) …• 사람은 동물이다.• 개는 동물이다• 고양이는 동물이다. 상속 관계는 상위 클래스 기능을 하위 클래스가 물려받을 수 있다는 것에클래스 계층구조가 안정적인 장점이 있다.부모 클래스 명세가 변경되면 코드가 손상될 위험이 있다.class Animal{ virtual void speak() { printf("동물..."); }}class Dog : public Animal {}class Cat : public Animal{ virtual void speak() {printf("야용...");}}void main(){ Animal* cat = new Ca.. 2024. 10. 21. [디자인패턴] 어댑터 패턴 (Adapter Pattern) 🎈 어댑터 패턴 (Adapter Pattern) • 호환되지 않는 인터페이스를 가진 두 개의 클래스를 함께 사용할 수 있게 한다.• 상속 보다는 위임하는 형태 권장 상속은 실수로라도 접근할 수 있기에 데이터를 보호하지 못할 수 있다.• 예시) 라이브러리 호환, 데이터 변환, 외부 API 통합, 로그 변환• 디자인 패턴 중 구조 패턴에 속한다. 💻 디자인 패턴(Design Pattern)이란?👨💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방zoosso.tistory.com [예제 코드]#include // 기존의 온도 변환 클래스cla.. 2024. 10. 13. 💻 디자인 패턴(Design Pattern)이란? 👨💻 디자인 패턴(Design Pattern)이란?• SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다.• 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방법론• 자주 반복되는 문제에 해결책 → 재사용과 팀원과의 의사소통• 23가지 디자인 패턴이 존재한다.• 연관되는 개념으로는 SOLID 원칙과 클린 코드(Clean Code) 등이 있다.• 「Gof (Gang of Four) 디자인 패턴」 으로 알려져 있다. → Erich Gamma / Richard Helm / Ralph Johnson / John Vissides 📌 객체 지향 프로그래밍 5대 원칙 [SOLID] 객체 지향 프로그래밍 5대 원칙 [SOLID]객체지향 프로그.. 2024. 8. 2. [디자인패턴] 체인 패턴 (Chain of Responsibility, 책임 연쇄) 🎈 체인 패턴 (Chain of Responsibility)• 책임 전가(고리, 연쇄)라고 불리는 패턴• 처리할 수 있는 다른 객체 연결 → 요청을 처리하거나 못해도 다음 객체로 전달한다.• 요청 자체와 각 처리 객체 사이의 결합을 피한다. → 객체 메시지 송신과 수신 분리• 하나의 객체에서 모든 처리를 구현하지 않을 수 있다. → 객체의 의존성 주입을 통한 위임• 디자인 패턴에서 행위 패턴에 속한다. 💻 디자인 패턴(Design Pattern)이란?👨💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방zoosso.tistory.com .. 2024. 7. 31. 객체 지향 프로그래밍 5대 원칙 [SOLID] 객체지향 프로그래밍에는 「SOLID」 원칙이 있다. 유연하고 확장성이 있는 코드 재사용에 목적을 둔다. • SRP (Single Responsibility Principle, 단일책임) • OCP (Open-Closed Principle, 개방-폐쇄 원칙) • LSP (Liskov's Substitution Principle, 리스코프 치원 원칙) • ISP (Interface Segregation Principle, 인터페이스 분리 원칙) • DIP (Dependency Inversion Principle, 의존성 역전 법칙) 📌 디자인 패턴(Design Pattern)이란? 💻 디자인 패턴(Design Pattern)이란? 👨💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에.. 2023. 11. 19. [디자인 패턴] 반복자 패턴(Iterator Pattern) 🎈 반복자 패턴 (Iterator Pattern) • 컬렉션 요소를 순회하는 방법을 추상화하는 디자인 패턴 • 반복자: 컨테이너의 요소를 가리키다가 약속된 방식으로 열거하는 객체 • 디자인 패턴 중 행위 패턴에 해당 💻 디자인 패턴(Design Pattern)이란? 👨💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드] #include #include template class Iterator { public: virtual T next() = 0; virtual bool hasNext() = 0; }.. 2023. 11. 14. [디자인패턴] 방문자 패턴 (Visitor Pattern) 🎈 방문자 패턴 (Visitor Pattern) •객체 구조를 변경하지 않고 객체 연산을 확장할 수 있는 패턴 • 디자인 패턴 중 행위 패턴에 해당 💻 디자인 패턴(Design Pattern)이란? 👨💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드] #include #include class Book; class Magazine; class Visitor { public: virtual void visit(Book& book) = 0; virtual void visit(Magazine& magazi.. 2023. 11. 13. [디자인 패턴] 경량 패턴 (Flyweight Pattern) 🎈 플라이웨이트 패턴 (Flyweight Pattern) • 객체를 공유하여 메모리 사용을 최적화하는 패턴 플라이웨이트 패턴은 모든 객체를 일일이 생성하지 않고 중복되는 부분을 공유해서 메모리를 가볍게 만드는 패턴 • Flyweight = "Fly 가벼운 + Weight 무게"라는 의미로 (복싱의 체급에서 유래되었다.) • 게임 개발, 웹 브라우저 캐시 등에 활용 가능 • 디자인 패턴 중 구조 패턴 💻 디자인 패턴(Design Pattern)이란? 👨💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com [예제 코드].. 2023. 11. 12. [디자인 패턴] 프록시 패턴 (Proxy Pattern) 🎈 프록시 패턴 (Proxy Pattern) • 대상 원본 객체를 대신 처리하여 로직 흐름을 제어하는 패턴 • 프록시(Proxy) 사전적인 의미는 '대리인' (= 누군가에게 어떤 일을 대신 시키는 것을 의미) • 활용방안: 보안, 캐싱, 데이터 유효성 검사, 지연 초기화, 로깅 등 • 디자인 패턴 중 구조 패턴에 해당된다. 💻 디자인 패턴(Design Pattern)이란? 👨💻 디자인 패턴(Design Pattern)이란? • SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다. • 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는 특정 상황에 적용할 수 있는 방 zoosso.tistory.com 프록시 패턴 필요성 Q) 객체에 직접적으로 접근하면 되지 번거롭게 대리자를 통하는 이유는 .. 2023. 11. 11. 이전 1 2 3 다음 반응형