본문 바로가기

CS(Computer Science)/디자인 패턴

(3)
행동 패턴(Behavioral patterns) Strategy(스트레티지) 패턴 Strategy(스트레티지) : ex - interface를 상속받은 클래스들에서 각각 다르게 overriding하여, 같은 interface의 메소드를 호출해도 객체마다 다르게 동작 State (스테이트) 패턴 State (스테이트): Strategy와 비슷하지만 아래와 같이 다름 -Strategy 패턴이 지정된 특정 메소드가 모듈화된 모드에 따라 다르게 실행되도록 하는 거라면 State 패턴은 그 메소드가 실행될 때 모드도 전환되는 것 -TV가 꺼져 있을 대 누르면 켜지고, 켜져있을 때 누르면 꺼지는 방식 Command 패턴 command 패턴 : Strategy와 역시 비슷하지만 아래와 같이 다름 - Strategy는 같은 일을 하되 그 알고리즘이나 방식이 갈아끼워..
구조 패턴(Structual patterns) 어댑터 패턴(Adapter Pattern) 어댑터 패턴 : 연관성 없는 두 객체 묶어 사용하는 패턴 (알고리즘을 요구사항에 맞춰 사용할 수 있음) ex) 한 객체의 함수를 다른 객체에서 원하는 형태로 쓸 수 있게 Adapter에서 그에 맞게 변경해서 보내줌 ex - A객체 interface를 B가 호출하는 interface에 맞게 adapter에서 변경해줌 브릿지 패턴(Bridge Pattern) 브릿지 패턴 : 기능과 구현을 따로 만들고 이들을 연결 시키는 것이 목적 (Adapter 처럼 연결 시켜주는 역할이지만 bridge pattern 은 미리 독립적인 진화를 고려한 상태로 만든 것이고 Adapter는 이미 존재하는 두 인터페이스의 불일치를 해결하려는 것이다. (기억 ex-모스부호 - 소리 문자 등..
생성 패턴(Creational patterns) 싱글톤(Singleton) 싱글톤 : 클래스에서 하나의 인스턴스만 생성하도록 구현 하는 것 public class singleton { private static singleton instance; private singleton() {} public static singleton getInstance() { if(instance==null) { instance=new singleton(); } return instance; } } - 기본생성자를 private으로 정의 -> 다른 class에서 생성을 못함. 내부에서만 가능 - 외부에서 생성자가 아니라 함수로 생성하게 함, instance없으면 만들어서 반환하고 이미 있으면 그대로 반환 - getInstance함수는 외부에서 인스턴스화 없이 바로 사용해..