VioletaBabel

객체 지향 설계 본문

기본개념/알고리즘공부
객체 지향 설계
Beabletoet 2017. 9. 13. 20:35

객체 지향 설계 : 기술적 문제나 실제 생활에서 접하는 객체들을 구현하는 클래스, 메서드들을 대략적으로 그려봄


유지보수가 용이한 객체 지향 코드를 만드는 법을 이해하고 있는지를 가림.



--

접근법


단계 1 : 모호성의 해소

가장 중요한 것은 누가 어떻게 사용할 것인지를 아는 것. 질문에 따라서는 누가, 무엇을, 어디서, 언제, 어떻게, 왜가 필요할 수도 있다.


단계 2 : 핵심 객체의 설계

시스템에 넣을 핵심 객체(core object)가 뭔지를 생각해야 한다.


단계 3 : 관계 분석

객체 사이의 관계를 분석해야 한다.

어떤 객체가 어떤 객체의 멤버이거나 상속을 받아야하거나 다대다 관계인지 일대다 관계인지를 알아야 한다.

설계가 얼마나 일반적이어야 하는지는 충분한 질문과 상의를 거쳐야 한다.

단계 4 : 행동 분석

객체가 수행하는 핵심 행동들을 생각하고, 어떻게 상호작용 하는지를 본다.



--

디자인 패턴


1. 싱글턴 클래스

클래스가 오직 단 하나의 객체만을 갖도록 한다.

하나만 생성되어야 하는 전역 객체를 구현해야 하는 경우에 유용하다.

허나 단위 테스트를 방해하는 요인이니 주의해야 하고, 안티-패턴이라 불리기도 한다.

만약 단위 테스트를 해야하는 코드에 싱글턴이 있다면 생성, 소멸 함수를 일일이 넣어주고 호출해줘야 한다.


2. 팩토리 메서드

어떤 클래스의 객체를 생성하기 위한 인터페이스를 제공한다.

하위 클래스에서 어떤 클래스를 생성할지 결정할 수 있도록 도운다.

Factory 메소드 자체에 대한 구현은 제공하지 않고, 객체 생성 클래스를 abstract로 선언하고 놔두는 방법이나

Factory 메소드를 실제로 구현한 Creator 클래스로 만드는 것이다. (이 경우엔 Factory 메소드에 생성할 클래스를 인자로 넘겨준다.)

'기본개념 > 알고리즘공부' 카테고리의 다른 글

정렬과 탐색  (0) 2017.09.14
시스템 설계 및 규모 확장성  (0) 2017.09.14
비트 조작  (0) 2017.09.11
그래프  (0) 2017.09.09
트리  (0) 2017.09.08
Comments