본문 바로가기

추상2

설계원칙 - SOLID(DIP) - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 추상팩토리 패턴:https://ko.wikipedia.org/wiki/%EC%B6%94%EC%83%81_%ED%8C%A9%ED%86%A0%EB%A6%AC_%ED%8C%A8%ED%84%B4 - 개요 DIP는 의존성 역전 원칙이다. 유연성이 극대화된 시스템이란 소스코드 의존성이 추상에 의존하며 구체에는 의존하지 않는 시스템이다. 단어가 어렵더라도 천천히 살펴보자. 우리가 좋아하는 스프링 웹 소스를 떠올려 보자. Controller에서 Service를 호출할 때, Service에 대한 인터페이스를 참조해야지 해당 인터페이스(추상클래스)를 구현한 구체 클래스를 참조해서는 안된다.. 2021. 2. 10.
UML - 클래스 다이어그램 고급 - 인터페이스 추상 클래스 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 인터페이스와 추상 클래스 추상 클래스는 직접 인스턴스화 될 수 없는 클래스이다. 추상 클래스는 추상 오퍼레이션을 가지고 있으며 추상 오퍼레이션은 구현을 갖고 있지 않다. UML 에서 추상 클래스 및 오퍼레이션을 표시할 때 글씨체가 기울어진 이탤릭체를 사용한다. 클래스는 인터페이스를 필요로하거나, 인터페이스의 기능을 제공한다. Order 클래스는 Line Item의 리스트를 필요로하며, List 인터페이스에 의존하고 있다. 인터페이스 기능을 제공하는 구현체는 AbstractList 추상 클래스를 상속하는 ArrayList 이다. 물론 Order가 사용시에는 ArrayList 구현체를 직접 사용하지 않고, List 인터페이.. 2021. 2. 10.