- 캡슐화.
1. 객체의 역할 내부의 구현을 외부에 노출하지 않음으로 해서, 의존하고 있는 다른 객체에 영향을 최소화 하기 위해 필요하다.
- 규칙
1. Tell, Don't Ask.
- 데이터를 요구하는 것이 아니라, 기능을 실행해달라는 규칙.
- 데이터를 가져오는 것은 데이터를 중심으로 코드를 작성하게 만드는 원인이 되며, 이는 곧 절차지향적인 코드를 유도하게 된다.
2. 데미테르의 법칙 (Law of Demeter)
- Tell, Don't, Ask 규칙을 따를 수 있도록 만들어 주는 또 다른 규칙이다.
- 항목.
메소드에서 생성한 객체의 메소드만 호출.
파라미터로 받은 객체의 메소드만 호출.
필드로 참조하는 객체의 메서드만 호출.
-> 객체의 메소드를 통해 반환받은 객체의 메소드를 직접 호출하지 않도록 하는 원칙이다.
- 평소 지켜지지 않는 현상.
1. 연속된get 메소드 호출.
value = someObject.GetA().GetB().GetValue();
2. 임시변수의 get 호출이 많음
A a = someObject.getA();
B b = a.getB();
C c = b.getC();
'설계 > 객체지향설계' 카테고리의 다른 글
개발 원칙. (0) | 2019.05.30 |
---|---|
SOLID - 개발 원칙. (0) | 2017.01.30 |