블로그 이미지
yukino

카테고리

분류 전체보기 (56)
내이야기 (11)
좋아하는이야기 (17)
책이야기 (1)
건강정보 (3)
개발이야기 (19)
Hustle Doo (5)
Total
Today
Yesterday
역시나.. 직무교육 중 정리해봅니다.

처음에는 열심히 집중하였으나
시간이 갈수록 집중력이 저하되면서
정리한 내용이 적어지고 있습니다. -_-a

긴 시간동안의 교육이라... 어쩔수가 없네요. 쩝..

아래는.. 또.. 대충.. 적어본 내용들입니다.


* 클래스 상속보다는 객체 합성을 사용하라

#LSP => Liskov Substitution Principle
: IS-A 관계를 만족하도록 상속해야한다.
: DBC 역시 LSP를 위반한다.

void addSuperHeroes(List <String> members) {
 members.add("Superman");
 members.add("Batman");
 members.add("Mr.Hong");
}

String [] members = {"aaa", "bbb", "ccc"};
addSuperHeroes(Arrays.asList(members));

: "정사각형은 직사각형이다."라는 것은 논리적으로는 정상이지만 LSP를 위반하는 결과를 가진다.
:명백한 LSP위반을 제외한 나머지 처리는 연기시키는 것이 최선이다.

#Design By Contract (DBC)
: 계약에 의한 설계
1. 사전 조건
- (입력조건) 메소드를 실행하기 위해 만족해야 하는 조건.
- 원래의 사전 조건과 같거나 더 약한 수준으로만 대체.
2. 사후 조건
- (출력조건) 메소드가 실행된 후 만족해야 하는 조건.
- 원래의 사후 조건과 같거나 더 강한 수준으로만 대체.

#SRP (Single Responsibility Principle)
: 단일 책임의 원칙
: 관계가 없는 것은 따로 떼어내라.
: 서로 연관이 있는 기능이 하나의 클래스로 결합되어야한다. => High cohesion
: 책임을 너무 세분하면 오히려 응집력이 떨어직 된다.
: 미리 변경을 예상하지말고
  변경이 명확하거나 실제 변경이 일어나는 경우에만 분리하도록!


#ISP (Interface Segregation principle)
: 클래스의 재사용성 증가.

Posted by yukino
, |