개발관련 도서/객체지향과 디자인 패턴 3

2-1 설계원칙/ DI와 서비스 로케이터

설계 원칙 : SOLID 1. 단일 책임원칙: 1) 단일 책임 원칙 (클래스는 단 한 개의 책임을 가져야 한다.) : 다른 말로 클래스를 변경하는 이유는 단 한 개여야 한다. 그러나 하나의 책임의 개념이 명확하지 않고, 하나의 책임을 도출하려면 많은 경험이 필요하기 때문에 어려운 원칙이다. 2) 단일 책임원칙 위반 시 불러오는 문제점 : 예를 들어 데이터를 읽는 책임과 데이터를 화면에 출력하는 책임 2가지를 동시에 하나의 클래스에서 관리하면, 책임의 개수가 많아질수록 책임의 기능 변화가 다른 책임에 주는 영향이 비례해서 증가해서 결국 코드를 절차 지향적으로 만든다. 이는 유지보수, 재사용의 어려움을 야기한다. 3) 책임이란 변화에 대한 것 : 단일 책임 원칙을 잘 지킬 수 있는 방법은 메서드를 실행하는 ..

1-4 재사용 : 상속보다는 조립을 지향

재사용 측면에서 1. 상속의 단점 : (변경의 유연함의 측면에서 치명적인 단점을 갖는다.) 1) 상위 클래스 변경의 어려움 : 상위 클래스를 변경할 경우 하위 클래스에 영향을 주게 된다. 따라서 클래스 계층도가 커질수록 상위 클래스를 변경하는 것은 점점 어려워진다. 2) 클래스 수의 불필요한 증가 : 예를 들어 Storage 클래스를 상속받아 CompressedStorage 클래스와 EncryptedStorage 클래스를 추가했다 가정하자. 이 상황에서 압축을 먼저 하고 암호화하는 저장소가 필요하다면 CompressedEncryptedStorage를 추가해야 하고, 암호화를 먼저 하고 압축을 해야 하는 저장소가 필요하면 EncryptedCompressedStorage를 추가해야 한다. 또한, 추가적으로 ..