
구현은 다르나 기본적인 골격은 비슷한 경우기본 골격에 해당하는 알고리즘은 일괄적으로 관리하면서 각 프로그램마다 달라지는 부분에 대해 쉽게 수정 기본 골격을 부모클래스에서 선언. 개별적인 함수 구현은 자식클래스에서 Template method : 기본 골격 ( 변하지

응집 루틴 안의 오퍼레이션이 얼마나 긴밀히 관련 있는가?결합두 루틴 사이의 연결 강도 개념적 구현과 관계없는 추상적인 부분 : 무엇을 명세적 소프트웨어 인터페이스 수준 (구현이 아닌)구현적 구체적인 원시 코드 수준 : 메소드, 어떻게 Public 누구나 접근 가능 Pr

코드보다 UML로 시험하는것이 저렴 축약, 요약커뮤니케이션명확히, 정확히 하기위해 유스케이스 다이어그램 시스템 밖에서 시스템을 바라볼 때 서비스를 나타냄 시퀀스 다이어그램 객체들이 어떻게 서로 상호작용하는가 클래스 다이어그램 접근지시자 public + , protect

Single Responsibility Principle어떤 클래스를 변경해야 하는 이유는 오지 하나뿐이어야함 결합된 책임을 분리해서 별도의 클래스로 만들어야함 Open Close Principle확장에 대해 열려 있지만 변경에 대해 닫혀 있어야 함 추가는 쉽게하고 수

기존 인터페이스와 메소드, 이름, 매개변수 등이 다른 레거시 패턴을 어댑터를 활용해서 사용할 수 있게 함 adapter는 adaptee의 메소드를 호출함연관, 상속으로 구현 가능함. 연관이 더 낫다 클라이언트는 퍼싸드의 인터페이스만 알면 됨 퍼싸드는 클라이언트가 시스템

특정 객체에 대한 접근을 조절하기 위해 프록시를 중간에 세움 필요할 때만 비싼 기능에 접근하도록 시간이 많이 소요되는 불필요한 복잡한 객체를 생성하는 시간을 간단한 객체로 줄임 워드에서 화면에 보이는 부분은 당장 가져와야 하지만, 보이지 않는 부분은 proxy라는 객체

빌더패턴 복잡한 객체들을 단계별로 생성할 수 있게 하는 패턴 많은 필드를 초기화해야 하는 복잡한 객체 클래스에서 객체 생성 코드를 빼서 Builder 클래스로 만듬 다양한 종류의 빌더를 만들어 다른 방식으로 객체를 생성할 수 있음 팩토리 메소드 패턴 new로 객체

복제하듯이 찍어내고 싶을 때 객체의 많은 부분이 유사하고 일부만 다를 때 앙상블 : 객체의 패밀리. 각 패밀리 멤버마다 스타일이 있음 앙상블이 MyPart를 aggregation으로 참조 가짐 clone 메소드는 자기 자신을 복제해서 반환함 앙상블에서 각 파트의 clo

명령을 Command 객체로 만듬 Invoker는 Command의 참조를 갖고 Command를 실행함 Command는 Receiver의 참조를 갖고 execute()를 통해 Receiver의 메소드를 호출함Receiver가 명령을 받고 실제적인 작업을 수행함 동적으로