미처 완성되지 못한 알고리즘
어댑터 패턴의 간단한 예들 본문
어댑터 패턴: 기존에 쓰던 메소드나 클래스를 새로운 클래스에 매핑을 해준다.
기능 변경과 추가했을 때 어댑터 패턴을 사용하여 유지보수가 가능하다.
ex)
class Target
{
public virtual void Request() { Console.WriteLine("Target Request Method"); }
}
class Adaptee
{
public void SpecificRequest() { Console.WriteLine("Adaptee SpecificRequest Method"); }
}
class Adapter : Target
{
private Adaptee m_adaptee = new Adaptee();
public override void Request()
{
m_adaptee.SpecificRequest();
}
}
class Program
{
static void Main(string[] args)
{
Target target = new Target();
target.Request();
}//main
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class NewUnit
{
public virtual void Attack()
{
Console.WriteLine("New Unit Attack");
}
public virtual void Move()
{
Console.WriteLine("New Unit Moved");
}
}
class OldUnit
{
public void AttackUnit()
{
Console.WriteLine("Old Unit Attack");
}
public void MoveUnit()
{
Console.WriteLine("Old Unit Moved");
}
}
class Unit : NewUnit
{
private OldUnit m_adaptee = new OldUnit();
public override void Attack()
{
m_adaptee.AttackUnit();
}
public override void Move()
{
m_adaptee.MoveUnit();
}
}
class Program
{
static void Main(string[] args)
{
List<NewUnit> listUnit = new List<NewUnit>();
listUnit.Add(new NewUnit());
listUnit.Add(new Unit());
for(int i = 0; i < listUnit.Count ;i++)
{
listUnit[i].Move();
listUnit[i].Attack();
}//main
}
'IT > 디자인 패턴' 카테고리의 다른 글
command 패턴의 간단한 예들 (0) | 2017.10.02 |
---|---|
옵저버 패턴의 간단한 예들 (0) | 2017.09.29 |
팩토리 메소드 패턴 간단한 예 (0) | 2017.09.28 |
간단한 싱글톤 예제들 (0) | 2017.09.25 |