디자인 패턴/생성

추상 팩토리

sdafdq 2022. 10. 7. 19:47

이게 책이 옛날 책인데 (GOF)

 

요새 객체지향 하면 다 이거 배운다. 

 

그만큼 아주 효과적이여서 아예 abstract라는 명령어를 아예 DVE에서 제공을 해준다.

 

먼저 아예 추상적인 클래스를 정의해 주는거다.

 

그 다음 구체적인 내용들을 이 추상클래스를 상속받은 서브클래스들이 그 내용을 정의 해주는 거다.

 

이렇게 하면 엄청난 다형성이 생긴다.

 

예를 들면 동물의 추상적인 개념에서 개, 고양이, 말 같은 더 구체적인 객체를 위한 정의를 해준다.

 

동물이라는 추상 클래스에 bark()라는 추상 메소드를 정의 한 뒤, 각각의 서브 메소드 들이 overriding 하여 이를 구현하는 것이다.

 

이렇게 하면 인자로 Animal animal로 받아서 animal.bark()하면 알아서 다 각자의 소리를 낸다. 

 

비슷한데 분류적인, 그런

 

 

아니면 UserInterface라는 추상클래스에 PhoneInterface와 ComputerInterface 등으로 상속 해도 편리. 분류하는.

 

예를 들어 게임의 특징들을 소개하는. 그런 한 표에다 보여주는.

 

표의 특징열에 이름, 이미지, 장르 등이 있다면

 

특징이라는 추상 클래스에 이름 : 특징, 이미지 : 특징, 장르 : 특징에 표에 정보를 삽입할 수 있는 .insertTable()이라는 추상메소드를 상속받아 각각 정의.

 

아무래도 내가 생각하는 가장 장점은 일관성.

 

 

단점은 추상 클래스가 변경되면 모든 서브클래스도 영향을 받음.

 

 

 

'디자인 패턴 > 생성' 카테고리의 다른 글

싱글톤  (0) 2022.11.11
원형(prototype) 패턴  (0) 2022.10.16
팩토리 메서드  (0) 2022.10.14
빌더 패턴  (0) 2022.10.12