'변화하는 부분과 그대로 있는 부분'을 분리하려면 2개의 클래스 집합을 만들어야 합니다.각 클래스 집합에는 각각의 행동을 구현한 것을 전부 집어 넣습니다.fly()와 quack()은 Duck 클래스에 있는 오리 종류에 따라 달라지는 부분입니다.fly()와 quack()
신문사가 사업을 시작하고 신문을 찍어내기 시작합니다.독자가 특정 신문사에 구독 신청을 하면 매번 신문이 나올때마다 배달을 받을 수 있습니다.구독을 해지하기 전까지 신문을 계속 받을 수 있습니다.신문을 더 이상 보고 싶지 않으면 구독 해지 신청을 합니다.그러면 더이상 신
OCP(Open-Closed Principle)는 정말 중요한 디자인 원칙 중 하나입니다.디자인 원칙 - 클래스에는 확장에는 열려 있어야 하지만 변경에는 닫혀 있어야 한다.우리의 목표는 기존 코드를 건드리지 않고 확장으로 새로운 행동을 추가하는 것입니다. 이 목표를 달
new 연산자를 사용한다고 해서 새로운 객체가 만들어지는 것은 아닙니다.객체의 인스턴스를 만드는 작업이 항상 공개되어야 하는 것은 아니며, 오히려 모든 것을 공개했다가는 결합 문제가 생길 수 있다는 사실을 배웁니다.팩토리 패턴으로 불필요한 의존성을 없애서 결합 문제를
하나만 있어도 충분한 객체스레드 풀캐시대화 상자사용자 설정레지스트리 설정 처리 객체로그 기록용 객체디바이스 드라이버한 애플리케이션에 들어있는 어떤 객체에서도 같은 자원을 활용 가능연결 풀, 스레드 풀과 같은 자원 풀 관리에 적절함객체 인스턴스가 여러 개 생겨서 의도치