- 캡슐화.

 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

+ Recent posts