OOP: 3개의 글
스프링에 대해 공부하면서 그리고 프로젝트를 진행해보고 여러 예제 코드들을 접해보면서 느낀 것은 관습적으로 브릿지 패턴을 이용한 추상화를 사용하고 있다는 점입니다. 관습적인 추상화 계층화된 아키텍처인 MVC 패턴을 적용한 대부분의 프로젝트에서는 그 중에서도 Service 계층에서는 MemberService 와 같이 서비스를 인터페이스로 생성하고 MemberServiceImpl 이라는 구현체를 생성해서 사용하는 방식으로 대부분의 설계가 이루어집니다. 토비의 스프링이나 여러 객체지향과 스프링 관련 책들을 보면 이와 같은 패턴으로 설계를 해야하는 이유에 대해서 잘 설명하고 있습니다. 인터페이스와 구현체의 분리를 통해 특정 기술이나 외부환경에 독립적으로 보다 자유로운 확장이 가능해진다는 OCP 원칙에 입각한 분명..
참조문서 http://www.nextree.co.kr/p6960/ http://slenderankle.tistory.com/162 1. SOLID란? 객체지향 설계는 긴 세월과 수많은 시행착오를 거치며 5가지 원칙이 정리되었다. 이것은 객체지향 설계의 5원칙이라고 하며, 앞글자를 따서 SOLID라고 한다. SPR(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 ..
1. 클래스와 객체 가장 흔한 설명중에 대표적으로 잘못된 것은 붕어빵이야기다. 클래스 = 붕어빵틀, 객체 = 붕어빵에 비유하며, 붕어빵틀에서 붕어빵을 찍어낸다는 이야기다. 하지만 코드로 보면 이 비유는 틀렸다. 클래스 객체변수명 = new 클래스(); 에 대입해보면, 붕어빵틀 붕어빵 = new 붕어빵틀(); 이다. 말이 안되는 예제이다. 여기서 붕어빵틀은 붕어빵을 만드는 Factory로 이해를 해야지, 클래스와 객체관계로 이해하면 안된다. 클래스는 추상적이고, 클래스라는 단어대로 분류에 대한 개념이지, 실체가 아니다. 하지만 객체는 실체이다. class Person이 있고, Person ljh = new Person(); 이 말이 되는 것이다. 클래스 : 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개..