Design Smells
Name |
Symptoms |
Rigidity (경직성) |
The system is hard to change, because every time you change one thing, you have to change something else in a never ending succession of changes. |
Fragility (취약성) |
A change to one part of the system causes it to break in many other, completely unrelated parts. |
Immobility (부동성) |
It is hard to disentangle the system into components that can be reused in other systems. |
Viscosity (점착성) |
If it is easier to add a hack than it is to add code that fits into the design, then the system has high viscosity. |
Needless Complexity (불필요한 복잡성) |
There are lots of very clever code structures that aren't actually necessary right now, but could be very useful one day |
Needless Repetition (불필요한 반복) |
The code looks like it was written by two programmers named Cut and Paste. |
Opacity (불투명성) |
Elucidation of the originator's intent presents certain difficulties related to convolution of expression |
R.C. Martin's Software Design Principles: SOLID 원칙
- Single-Responsibility Principle (SRP) : 단일 책임 원칙
- Open-Closed Principle (OCP) : 개방 폐쇄 원칙
- Liskov Substitution Principle (LSP) : 리스코프 치환 원칙
- Interface Segregation Principle (ISP) : 인터페이스 분리 원칙
- Dependency Inversion Principle (DIP) : 의존관게 역전 원칙
1. Single Responsibility Principle (SRP) : 단일 책임 원칙
로버트 마틴은 책임을 변경하려는 이유로 정의합니다. 클래스는 변경하려는 단 하나의 이유만을 가져야 한다고 주장합니다.
한 클래스가 여러 개의 책임을 갖고 있다면, 클래스를 분리하여 하나의 책임만을 가져야 합니다. 왜냐하면, 한 책임이 바뀌면, 다른 책임에도 영향이 갈 수 있기 때문입니다. 유지보수 하는 시간이 더욱 길어지게 되는거죠.
2. Open Closed Principle (OCP) : 개방 폐쇄 원칙
확장에 대해 열려 있다.
수정에 대해 닫혀 있다.
3. Liskov Substitution Principle (LSP) : 리스코프 치환 원칙
4. Interface Segregation Principle (ISP) : 인터페이스 분리 원칙
5. Dependency Inversion Principle (DIP) : 의존관계 역전 원칙
'자바 > 자바 자료실' 카테고리의 다른 글
[디자인 패턴] GoF 패턴 구분 (0) | 2018.12.19 |
---|---|
[디자인 패턴] 09. 이터레이터 패턴 (Iterator Pattern) (0) | 2018.12.18 |
[디자인 패턴] 08. 템플릿 메소드 패턴 (Template Method Pattern) (0) | 2018.10.23 |
[디자인 패턴] 07. 어댑터 패턴과 퍼사드 패턴 (Adapter Pattern and Facade Pattern) (0) | 2018.10.23 |
[디자인 패턴] 06. 커맨드 패턴 (Command Pattern) (0) | 2018.10.23 |
댓글