gpffh1011

디자인패턴, 스트래티지 패턴 본문

자바/관련상식

디자인패턴, 스트래티지 패턴

gpffh1011 2020. 5. 14. 00:17

1. 디자인패턴 (디자인 패턴은 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론)


 

디자인 패턴은 객체지향 언어에서 클래스와 클래스의 메서드를 사용하는 패턴, 즉 특정 의도를 가지는 방법을 의미한다.

코딩을 혼자 하는 경우는 드물며 보통 다른 개발자와 함께 개발을 하기 때문에 

내가 작성한 코드가 다른 사람이 알아볼 수 없으면 제법 곤란하지 않을 수가 없다.

그러므로 작성 코드는 최대한 간결하고 모두가 알아 볼 수 있는 내용으로 작성해야 한다.



1). 코딩이 명확하고 단순하며,

2). 모듈( class나 function 등 )은 한 가지 기능만 하도록 작게 세분화 시킬 수 있으며

3). 재사용성이 높고

4). 유지 보수가 쉬우며

5). 리소스의 낭비가 없는지  숙지하여 

 

 

 

 

< 디자인패턴 종류 >

 

이미 알려진 디자인 패턴은 다음과 같이 23개로 나누어져있다.
이는 GoF(Gang of Four) 디자인 패턴이라고 불리며, 4명의 유명한 개발자들에 의해 고안되었다.

생성 패턴 (Creational patterns)구조 패턴 (Structural patterns)행동 패턴 (Behavioral patterns)

싱글톤 (Singleton) 어댑터 (Adapter) 스트레티지 (Strategy)
팩토리 메쏘드 (Factory Methods) 브리지 (Bridge) 템플릿 메쏘드 (Template Meothods)
추상 팩토리 메쏘드 (Abstract Factory Methods) 컴퍼지트 (Composite) 옵저버 (Observer)
빌더 (Builder) 데코레이터 (Decorator) 스테이트 (State)
프로토타입 (Prototype) 퍼사드 (Facade) 비지터 (Visitor)
  플라이웨이트 (Flyweight) 커맨드 (Command)
  프록시 (Proxy) 인터프리터 (Interpreter)
    이터레이터 (Iterator)
    미디에이터 (Mediator)
    메멘토 (Memento)
    책임 연쇄 (Chain of Responsibility)




 

2.  스트래티지 패턴

 

 

상속을 한 클래스에서 변경이 될수있는 특정매서드를 클래스 하나로 묶어서 그걸 운용하는 패턴

오리는 헤엄친다

청둥오리 집오리 는 헤엄치는게 가능.

하지만 로봇오리는 헤엄치지 못한다.

여기서 헤엄치는걸 헤엄치다와 헤엄치지 못하다로 나뉘고 헤엄이라는 클래스를 만들어 그 안에 [헤엄치다] [헤엄치지못하다]라는 메서드를 만든다.

나중에 헤엄에 또다른 기능이 추가되면 바꿀수가 있다. 부모메서드와는 다른 개념으로 이해해야한다.