태그: SOLID

0

SOLID - 의존관계 역전 원칙 (DIP)

Dependency inversion principle 상위레벨 모듈이 하위레벨 모듈에 의존하면 안된다. 상위/하위 모듈 모두 추상화에 의존해야 한다. 추상화는 구현체를 의존하면 안된다. 중요한점 OO의 핵심이다. IoC를 통해 상위래밸의 모듈을 하위레벨 모듈로 부터 보호하는 것이다. 이를 통해 OCP를 지키고, 새로운 요구사항을 반영 가능 예제 l

0

SOLID - 인터페이스 분리 원칙 (ISP)

Interface segregation principle 클라이언트는 자신이 사용하는 메서드에만 의존해야 한다. 사용하지 않는 의존성을 갖고 있다면 인터페이스 변경시 재컴파일/빌드/배포가 필요하므로 독립적인 개발/배포 불가능 사용하는 기능만 제공하도록 인터페이스를 분리하여, 사이드이펙트 최소화 클라이언트 입장에서 인터페이스를 분리 흔하디 흔한 스타크래

0

SOLID - 리스코프 치환 원칙 (LSP)

Liskov substitution principle 상위타입 객체를 사용하는 프로그램은 상위타입 대신 하위타입 객체를 사용해도 클라이언트의 수정 없이 정상적으로 동작해야 한다. LSP 위반 사례 명세에 벗어난 값 리턴 명세에 벗어난 익셉션 발생 명세에 벗어난 기능 수행 instanceof / downcasting을 사용한것은 전형적인 LSP 위반 LS

0

SOLID - 개방 폐쇄 원칙 (OCP)

Open-closed principle 확장에는 열려 있고 변경에는 닫혀 있어야 한다. (변화하는 부분을 추상화하여) 기능에 대한 변경/확장이 쉬워야한다. (확장 : 새로운 타입을 추가) 기능을 사용하는 코드는 고정된 추상(abstract, interface)에 의존하므로 소스코드의 수정이 이뤄지면 안된다. OCP를 위배하는 전형적인 특징 다운 캐스팅

0

SOLID - 단일 책임 원칙 (SRP)

Single responsibility principle 클래스는 하나의 책임만 가지며 클래스는 그 책임을 완전히 캡슐화 해야 한다. 여러 책임을 갖고 있는 DataViewer 클래스1234567891011121314151617181920212223// 개발자가 반드시 정복해야 할 객체 지향과 디자인패턴(106page 예제)class DataViewer