java design pattern 15

[자바 디자인 패턴] 행동패턴 - 커맨드 패턴

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 커맨드를 추가하고 난 다음 Receiver, Invoker 클래스만 수정하기만 하면 바로 추가된 커맨드를 사용할 수 있다. 지금은 이 커맨드라는 부분이 어떤 장치에 들어가는 프로그램에 사용하는 경우에 좀 더 적합한..

카테고리 없음 2019.08.12

[자바 디자인 패턴] 행동패턴 - 책임연쇄패턴

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 처음에 여러 절차에 따라서 테스트를 하기 위한 경우에도 이렇게 책임 연쇄패턴을 써서 돌려봐도 좋을 것 같다. 유연성도 있고, 하나의 클래스가 하나의 역할을 하기 때문에 여러가지 작업을 하나하나 적용하고 순서도 바꾸..

카테고리 없음 2019.08.12

[자바 디자인 패턴] 구조패턴 - 프록시 패턴

구조패턴 목록 어댑터 패턴 (Adapter Pattern) 브릿지 패턴 (Bridge Pattern) 컴포짓 패턴 (Composite Pattern) 데코레이터 패턴 (Decorator Pattern) 퍼사드 패턴 (Facade Pattern) 플라이웨이트 패턴 (Flyweight Pattern) 프록시 패턴 (Proxy Pattern) 이미지 변환이나 디코딩과 같이 비용이 높은 경우에 가상프록시 패턴이 유용할 것 같고, 엑세스 관련 기능은 자주 사용되는 부분이기 때문에 보호프록시 패턴은 항상 필요로 할 것 같다. 장점 1) 가상 프록시 : 시간이 오래 걸리는 프로세스가 있다면 생성시 동작하도록 하던 로직을 함수를 호출하여 실행할 때 동작하도록 미뤄둘 수 있습니다. 따라서 프로그램이 시작되는 경우에는 오..

카테고리 없음 2019.08.11

[자바 디자인 패턴] 구조패턴 - 플라이웨이트 패턴

구조패턴 목록 어댑터 패턴 (Adapter Pattern) 브릿지 패턴 (Bridge Pattern) 컴포짓 패턴 (Composite Pattern) 데코레이터 패턴 (Decorator Pattern) 퍼사드 패턴 (Facade Pattern) 플라이웨이트 패턴 (Flyweight Pattern) 프록시 패턴 (Proxy Pattern) 게임이나 지도처럼 동일한 객체를 특정 속성만 바꿔서 재사용이 가능한 경우에 적용하면 큰 효과를 기대할 수 있는 패턴인 것 같다. 장점 - 객체의 수를 줄입니다. - 객체가 지속되는 경우에 필요한 메모리 및 저장장치의 양을 줄입니다. 사용시기 - 응용프로그램이 많은 수의 객체를 사용하는 경우 - 물체의 수량으로 인해 저장비용이 높은 경우 - 응용프로그램이 객체 ID에 의존..

카테고리 없음 2019.08.11

[자바 디자인 패턴] 구조패턴 - 퍼사드 패턴

구조패턴 목록 어댑터 패턴 (Adapter Pattern) 브릿지 패턴 (Bridge Pattern) 컴포짓 패턴 (Composite Pattern) 데코레이터 패턴 (Decorator Pattern) 퍼사드 패턴 (Facade Pattern) 플라이웨이트 패턴 (Flyweight Pattern) 프록시 패턴 (Proxy Pattern) 사용하는 객체를 배려한 패턴이라고 생각한다. 각각의 단위기능을 사용자가 더 편리하게 이용할 수 있도록 하려면 인터페이스를 어떤 형태로 제공해야 하는지를 많이 고민해야 할 것 같다. 장점 - 하위 시스템 구성요소의 복잡성으로부터 클라이언트를 보호합니다. - 서브 시스템과 클라이언트 사이의 느슨한 결합을 촉진합니다. 사용시기 - 복잡한 하위 시스템에 간단한 인터페이스를 제공..

카테고리 없음 2019.08.11

[자바 디자인 패턴] 구조패턴 - 데코레이터 패턴

구조패턴 목록 어댑터 패턴 (Adapter Pattern) 브릿지 패턴 (Bridge Pattern) 컴포짓 패턴 (Composite Pattern) 데코레이터 패턴 (Decorator Pattern) 퍼사드 패턴 (Facade Pattern) 플라이웨이트 패턴 (Flyweight Pattern) 프록시 패턴 (Proxy Pattern) 같은 계층에 있는 객체들 중에서 몇가지만 다른 로직을 적용하고 싶은 경우에 사용하면 유용할 것 같다. 장점 - 정적 상속보다 유연성이 뛰어납니다. - 새 클래스를 코딩하여 변경하기 때문에 오브젝트의 확장성을 향상시킵니다.. - 모든 동작을 객체로 코딩하는 대신 대상 클래스에서 일련의 기능을 개발할 수 있도록하여 코딩을 단순화합니다. 사용시기 - 다른 객체에 영향을 미치지..

카테고리 없음 2019.08.11

[자바 디자인 패턴] 구조패턴 - 컴포짓 패턴

구조패턴 목록 어댑터 패턴 (Adapter Pattern) 브릿지 패턴 (Bridge Pattern) 컴포짓 패턴 (Composite Pattern) 데코레이터 패턴 (Decorator Pattern) 퍼사드 패턴 (Facade Pattern) 플라이웨이트 패턴 (Flyweight Pattern) 프록시 패턴 (Proxy Pattern) 객체와 객체 사이의 연관관계가 계층으로 표현해야 하고, 같은 계층에서 다른 역할을 구현할 필요가 있다면 이 패턴이 필요할 것 같다. 장점 - 기본적이고 복잡한 객체를 포함하는 클래스 계층을 정의합니다. - 새로운 종류의 구성 요소를 쉽게 추가할 수 있습니다. - 관리 가능한 클래스 또는 인터페이스로 구조의 유연성을 제공합니다. 사용법 - 객체의 전체 또는 부분 계층을 나..

카테고리 없음 2019.08.11

[자바 디자인 패턴] 구조패턴 - 브릿지 패턴

구조패턴 목록 어댑터 패턴 (Adapter Pattern) 브릿지 패턴 (Bridge Pattern) 컴포짓 패턴 (Composite Pattern) 데코레이터 패턴 (Decorator Pattern) 퍼사드 패턴 (Facade Pattern) 플라이웨이트 패턴 (Flyweight Pattern) 프록시 패턴 (Proxy Pattern) 인터페이스 구현 시 로직이 많이 변경되어도 사용방법에 있어서 차이가 없도록 코드를 작성해야할 것 같다. 원하는 기능이 있다면 어떻게 원래의 함수에 잘 스며들 수 있을지 고민이 필요할 듯 하다. 장점 - 인터페이스와 구현을 분리할 수 있습니다. - 확장성을 향상시킵니다. - 클라이언트로부터 구현 정보를 숨길 수 있습니다. 사용시기 - 기능적 추상화와 구현 사이에 영구적인 ..

카테고리 없음 2019.08.11

[자바 디자인 패턴] 구조패턴 - 어댑터 패턴

구조패턴 목록 어댑터 패턴 (Adapter Pattern) 브릿지 패턴 (Bridge Pattern) 컴포짓 패턴 (Composite Pattern) 데코레이터 패턴 (Decorator Pattern) 퍼사드 패턴 (Facade Pattern) 플라이웨이트 패턴 (Flyweight Pattern) 프록시 패턴 (Proxy Pattern) 기존에 있는 클래스의 많은 부분을 재사용하는 경우에만 사용하고, 적은 부분만 가져다가 쓰는 경우에는 새로운 코드를 작성하는 편이 더 좋을 것 같다. 장점 - 이전에는 호환되지 않았던 둘 이상의 객체가 상호작용을 할 수 있습니다. - 기존 기능을 재사용 할 수 있습니다. 사용시기 - 객체가 호환되지 않는 인터페이스로 기존 클래스를 사용해야하는 경우 - 호환되는 인터페이스가..

카테고리 없음 2019.08.11

[자바 디자인 패턴] 생성패턴 - 오브젝트풀 패턴

생성패턴 목록 팩토리 메소드 패턴 (Factory Method Pattern) 추상 팩토리 패턴 (Abstract Factory Pattern) 싱글톤 패턴 (Singleton Pattern) 프로토타입 패턴 (Prototype Pattern) 빌더 패턴 (Builder Pattern) 오브젝트 풀 패턴 (Object Pool Pattern) 스레드 풀과 같이 한정된 리소스에서 자원을 재사용하는 방식을 적용하기를 원할 때 사용하면 성능개선에 좋을 것 같다. 장점 - 응용프로그램의 성능을 크게 향상시킵니다. - 클래스 인스턴스 초기화 속도가 높은 상황에서 가장 효과적입니다. - 커넥션을 관리하고 이를 재사용하고 공유할 수 있는 방법을 제공합니다. - 만들 수 있는 최대 객체 수에 대한 제한을 제공할 수 있..

카테고리 없음 2019.08.09