C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[23437] 추상 밥솥 만들기에 대해...
EmptySpear [] 897 읽음    2002-12-28 11:41
안녕하세요

저는 전기 밥솥을 만듭니다.

저희 회사엔 3가지 모델의 밥솥이 있죠

구형, 일반형, 최신형

그리고 각 모델마다 동일한 3가지 기능이 있습니다

죽밥, 꼬두밥, 보통밥 만들기

그런데 죽밥 하나를 만들더라도 구형모델일 경우

쌀, 물의 용량 및 가열시간, 등등의 조건을 입력해야 합니다

반면 최신형은 인공지능 타입이라 죽밥 만들기 버튼하나로

한국인 입맛에 맞는 평균적인 죽밥을 만들 수 있죠

중간 기능인 일반형은 구형보다는 작은 조건으로 3가지 기능을 수행하고요..


이걸 전산인들이 알기쉽게 class로 구현해 보겠습니다.


class 구형밥솥
{
public:
    void Make죽밥(float 쌀용량, float 물용량, int 가열시간...각종 조건 파라미터들...);
    void Make꼬두밥(float 쌀용량, float 물용량, int 가열시간...각종 조건 파라미터들...);
    void Make보통밥(float 쌀용량, float 물용량, int 가열시간...각종 조건 파라미터들...);

};

class 일반형밥솥
{
public:
    void Make죽밥(int 가열시간);
    void Make꼬두밥(int 가열시간);
    void Make보통밥(int 가열시간);

};


class 최신형밥솥
{
public:
    void Make죽밥();
    void Make꼬두밥();
    void Make보통밥();

};

대충 위와 같이 되겠네요

그런데 이런 3가지 모델을 대변하는 추상층을 하나 만들어

일괄적으로 밥솥을 제어하는 인터페이스를 만들고 싶습니다

리팩토링하는거죠

class 추상밥솥
{
public:
    virtual void Make죽밥();
    virtual void Make꼬두밥();
    virtual void Make보통밥();
};

위를 베이스클래스 삼아 3가지 모델을 상속받으면 쓸만한 밥솥 계층이 구성되겠건만

문제가 하나 있네요.

3가지 기능의 밥만드는 메쏘드는 이름은 동일한데

각기 모델(Sub Class)마다 다른 파라미터(인수)들은 어떻게

처리해야 할지 고작 밥솥 만드는 기술밖에 없는 저로서는 난감합니다

객체지향 밥솥 설계를 심도깊게 생각 하신분들의 조언을 부탁드립니다.



                그럼......

+ -

관련 글 리스트
23437 추상 밥솥 만들기에 대해... EmptySpear 897 2002/12/28
31469     Re:추상 밥솥 만들기에 대해... 국진(Ghost) 763 2002/12/30
31468     Re:추상 밥솥 만들기에 대해... 국진(Ghost) 782 2002/12/30
31467     Re:추상 밥솥 만들기에 대해... 국진(Ghost) 759 2002/12/30
31466     Re:추상 밥솥 만들기에 대해... 국진(Ghost) 795 2002/12/30
23458     Re:추상 밥솥 만들기에 대해... 김성규 828 2002/12/30
23460         Re:Re:추상 밥솥 만들기에 대해... EmptySpear 811 2002/12/30
23438     Re:추상 밥솥 만들기에 대해...(저의 소견) 김덕용 843 2002/12/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.