using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study_009
{
class APP
{
public APP()
{
SCV scv = new SCV();
Barracks brracks = scv.BuildBarracks();
scv.BuildAcademy();
Bunker bunker = scv.BuildBunker();
Marine marine= brracks.CreateMarine();
bunker.EnterBunker(marine);
bunker.ExitBunker(marine);
}
}
}
===========================================================================
class Barracks
{
public Barracks()
{
Console.WriteLine("배럭을 생성했습니다.");
}
public Marine CreateMarine()
{
return new Marine();
}
}
}
===========================================================================
class Academy
{
public Academy()
{
Console.WriteLine("아카데미 생성됨");
}
}
}
===========================================================================
class Bunker
{
public Bunker()
{
Console.WriteLine("벙커 생성");
}
public void EnterBunker(Marine marine)
{
Console.WriteLine("마린이 벙커에 들어왔습니다.");
marine.HideDisplay();
}
public void ExitBunker(Marine marine)
{
Console.WriteLine("마린이 벙커에서 나갔습니다.");
marine.ShowDisplay();
}
}
}
===========================================================================
class Marine
{
public Marine()
{
Console.WriteLine("마린생성");
}
public void ShowDisplay()
{
Console.WriteLine("마린이 보입니다");
}
public void HideDisplay()
{
Console.WriteLine("마린이 안보입니당");
}
}
}
===========================================================================
class SCV
{
public SCV()
{
Console.WriteLine("SCV가 생성됨");
}
public Barracks BuildBarracks()
{
return new Barracks();
}
public void BuildAcademy()
{
new Academy();
}
public Bunker BuildBunker()
{
return new Bunker();
}
}