Software/Design Pattern

    [Design Pattern] Command Pattern

    💡 About Command Pattern 커맨드 패턴은 주어진 기능들을 캡슐화함으로써 서로 다른 요청들을 실행할 수 있도록 하는 패턴이다. 간단히 말하자면 객체의 행위(메소드)를 클래스로 만들어 캡슐화하는 패턴인데, A 객체에서 B 객체의 메소드를 실행하려면 B 객체를 참조하고 있어야하는 의존성이 발생한다. → 커맨드 패턴을 적용하면 이런 의존성을 제거하고, 기능들을 수정, 추가할 때 확장성과 유연성이 좋아진다. 💡 Command Pattern Structure Invoker → 기능의 실행을 요청하는 호출자 클래스 Command → 실행될 기능에 대한 인터페이스 실행될 기능을 execute 메소드로 구현 ConcreteCommand → Command 인터페이스 구현 Receiver → Concrete..

    [Design Pattern] Adapter Pattern

    💡 About Adapter Pattern Adapter Pattern은 인터페이스와 인터페이스간의 호환성 문제를 해결해주는 패턴이다. 콘센트에 사용하는 그 어뎁터의 역할과 동일! 호환되지 않는 인터페이스를 사용하는 코드들은 Adapter Class를 만들어 활용할 수 있다. My existing system → Adapter → Vendor class Object Adapter와 Class Adapter로 구현방법이 나누어진다. 인터페이스가 호환되지 않는 문제가 발생해도 Adapter Pattern을 통해 기존의 코드를 수정하지 않고도 문제를 해결할 수 있다. 💡 Adapter Pattern Structure Object Adapter Pattern Client → Target Interface를 요구..

    [Design Pattern] Observer Pattern

    💡 About Observer Pattern 옵저버 패턴은 간단히 얘기하자면 어떤 객체의 상태가 변할 때 그와 연관된 객체들에게 알림을 보내는 디자인 패턴이다. pull → 데이터를 받아온다 push → 데이터를 입력한다 기본적으로 데이터의 변경값을 반영하거나 추가할 때, pull보다 push를 통해 처리해주는게 더 빠르다는 아이디어에서 시작된 패턴 ! One-To-Many Relationship → 하나의 신문사에서 구독자를 계속 수정하고, 추가해준다고 생각하면 쉽다. 💡 Observer Pattern Structure Subject → 신문사 역할, ConcreteSubject의 상위 클래스 subject 객체에서 데이터를 관리한다. 데이터가 달라지면 observer에게 notify를 보낸다. Obs..