[디딤돌 C++] 71. 최종 실습 – EHNARA 뼈대

이번 실습에서는 유즈케이스 별로 시퀀스 다이어그램 설계하고 구현하는 것을 반복할 것입니다. 먼저 이제까지 작업한 것을 구현하고 유즈케이스 별로 시퀀스 다이어그램 작성 맟 구현으로 들어갈게요.

EhNara의 뼈대를 만들고 난 후에 기본적인 사용자와 상호 작용의 프로토 타이핑을 할게요.

프로젝트에 Program.cpp 파일과 EhNara 클래스를 추가하세요. EhNara 형식 개체는 프로그램에 유일하며 대부분의 콘솔 응용 프로그램은 프로그램 초기화, 사용자와 상호 작용, 해제화 순으로 진행합니다.

class EhNara
{
단일체를 표현하기 위해 생성자와 소멸자의 접근 지정은 private으로 설정합니다. 대신 유일한 단일개체를 정적 멤버로 선언할게요. 
    static EhNara app;//단일체
public:
유일한 단일 개체를 가동하기 위한 정적 메서드를 추가하세요.
    static void Start();//응용 시작 - 진입점에서 호출하는 정적 메서드
 private:
     EhNara(void);
     ~EhNara(void);
뼈대에 해당하는 초기화, 사용자와 상호 작용, 해제화 부분을 담당할 멤버 메서드를 추가하세요.
     void Initailize(); //초기화
     void Run(); //사용자와 상호 작용
     void Exit(); //해제화
 };

Program.cpp 파일의 진입점 main은 다음처럼 간단합니다.

#include "EhNara.h"
int main()
{
    EhNara::Start();
    return 0;
}

EhNara.cpp 에는 정적 멤버 필드인 단일체를 선언해야겠죠.

EhNara EhNara::app;//단일체

정적 메서드 Start에서는 단일체 app의 초기화, 사용자와 상호 작용, 해제화 메서드를 호출합니다.

void EhNara::Start()//응용 시작 - 진입점에서 호출하는 정적 메서드
{
    app.Initialize();
    app.Run();
    app.Exit();
}

생성자와 소멸자는 특별하게 처리할 작업이 없으니 빈 상태로 나둘게요.

EhNara::EhNara(void)
{
}
EhNara::~EhNara(void)
{
}

초기화와 사용자와 상호 작용, 해제화 메서드도 단순히 무엇을 수행하는지 출력하는 구문만 작성합시다.

void EhNara::Initialize()
{
    cout<<"초기화"<<endl;
}

void EhNara::Run()
{
    cout<<"사용자와 상호 작용"<<endl;
}
void EhNara::Exit()
{
    cout<<"해제화"<<endl;
}

현재까지 EhNara 클래스의 뼈대를 만든 코드는 다음과 같습니다.

//EhNara.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
class EhNara
{
    static EhNara app;//단일체
public:
    static void Start();//응용 시작 - 진입점에서 호출하는 정적 메서드
private:
    EhNara(void);
    ~EhNara(void);
    void Initialize(); //초기화
    void Run(); //사용자와 상호 작용
    void Exit(); //해제화
};
//EhNara.cpp
#include "EhNara.h"

EhNara EhNara::app;//단일체
void EhNara::Start()//응용 시작 - 진입점에서 호출하는 정적 메서드
{
    app.Initialize();
    app.Run();
    app.Exit();
}
EhNara::EhNara(void)
{
}
EhNara::~EhNara(void)
{
}
void EhNara::Initialize()
{
    cout<<"초기화"<<endl;
}

void EhNara::Run()
{
    cout<<"사용자와 상호 작용"<<endl;
}
void EhNara::Exit() //해제화
{
    cout<<"해제화"<<endl;
}
//Program.cpp
#include "EhNara.h"
int main()
{
    EhNara::Start();
    return 0;
}

▷ 실행 결과

초기화
사용자와 상호 작용
해제화