copy from.
1. The Open-Closed Principle(OCP)
Software entities(classes, modules, functions, etc.) should be open for extension, but closed for modification.
소프트웨어 구성요소는 확장에 대해서는 개방되어야 하고, 변경에 대해서는 폐쇄되어야 한다.
모듈은 확장되어야 한다. 필요할 때 새로운 기능을 추가할 수 있어야 한다.
2. The Liskov Substitution Principle(LSP)
Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
기반 클래스의 포인터나 참조를 이용하는 함수는 파생 클래스에 대해서 알지 못하고 사용할 수 있어야 한다. 기반 클래스를 통해서 모든 파생 클래스를 사용할 수 있어야 한다는 개념이다.
3. The Dependency Inversion Principle(DIP)
Hihe level modules should not depend upon low level modules. Both should depend upon abstractions.
Abstractions should not depend upon details. Details should depend upon abstractions.
상위 모듈은 하위 모델에 의존해서는 안 된다. 상위, 하위 모듈은 모두 상위 모듈에 의존해야 한다.
추상적인 요소가 구체적인 요소에 의존해서는 안 된다. 구체적인 요소들은 추상적인 요소에 의존해야 한다.
4. The Interface Segregation Principle(ISP)
Clients should not be forced to depend upon interfaces that they do not use.
클라이언트는 사용하지 않는 인터페이스에 강제적으로 의존해서는 안된다.
인터페이스를 최대한 간결하게 목적에 맞게 설계해야 한다.
5. The Single Responsibility Principle(SRP)
There should never be more than one reason for a class to change.
특정 데이터 타입이 변경해야 하는 이유를 책임에 의해서만 변경되어야 한다.
하나의 데이터 타입은 오직 하나의 책임만을 서비스해야 함을 의미한다.
|
|
상세보기 |
1. The Open-Closed Principle(OCP)
Software entities(classes, modules, functions, etc.) should be open for extension, but closed for modification.
소프트웨어 구성요소는 확장에 대해서는 개방되어야 하고, 변경에 대해서는 폐쇄되어야 한다.
모듈은 확장되어야 한다. 필요할 때 새로운 기능을 추가할 수 있어야 한다.
2. The Liskov Substitution Principle(LSP)
Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
기반 클래스의 포인터나 참조를 이용하는 함수는 파생 클래스에 대해서 알지 못하고 사용할 수 있어야 한다. 기반 클래스를 통해서 모든 파생 클래스를 사용할 수 있어야 한다는 개념이다.
3. The Dependency Inversion Principle(DIP)
Hihe level modules should not depend upon low level modules. Both should depend upon abstractions.
Abstractions should not depend upon details. Details should depend upon abstractions.
상위 모듈은 하위 모델에 의존해서는 안 된다. 상위, 하위 모듈은 모두 상위 모듈에 의존해야 한다.
추상적인 요소가 구체적인 요소에 의존해서는 안 된다. 구체적인 요소들은 추상적인 요소에 의존해야 한다.
4. The Interface Segregation Principle(ISP)
Clients should not be forced to depend upon interfaces that they do not use.
클라이언트는 사용하지 않는 인터페이스에 강제적으로 의존해서는 안된다.
인터페이스를 최대한 간결하게 목적에 맞게 설계해야 한다.
5. The Single Responsibility Principle(SRP)
There should never be more than one reason for a class to change.
특정 데이터 타입이 변경해야 하는 이유를 책임에 의해서만 변경되어야 한다.
하나의 데이터 타입은 오직 하나의 책임만을 서비스해야 함을 의미한다.





