잊지 않겠습니다.

'Head First Design Pattern'에 해당되는 글 12건

  1. 2009.01.07 Code Sample : Adapter Pattern
  2. 2009.01.07 Head First Design Patterns

IOldBookStoreSystem을 구현한 OldBookStore을 아래와 같이 구현되어 있는 NewBookStore에서 사용하고자 할때. 

같은 또는 비슷한 기능들이 각기 다른 interface로 구현되어 있을때 사용하는 pattern이 된다.

  

 

 public class NewBookStore

 {

   public INewBookStoreSystem bookStoreSystem;

 } 

  

  public interface INewBookStoreSystem

 {

   void BuyBook(string isbnNumber, string cardNumber);

   void ChangeBook(string cardNumber);

 } 

  

//OldBookStore

  public interface IOldBookStoreSystem

  {

    void BuyBook(string bookTitle, int costMoney);

    void ChangeBook(string bookTitle, DateTime buyDate);

    void CloseStore();

  }

  

  public class OldBookStore : IOldBookStoreSystem

  {

    public void BuyBook(string bookTitle, int costMoney)

    {

      Console.WriteLine("Buy book Title");

    }


    public void ChangeBook(string bookTitle, DateTime buyDate)

    {

      Console.WriteLine(string.Format("Change Book : {0}", buyDate));

    }


    public void CloseStore()

    {

      Console.WriteLine("Close the store.");

    }

  } 

  

이때에 새로운 INewBookStoreSystem을 이용. (INewBookStoreSystem이 adapter interface가 된다.)

  public class OldBookStoreAdapter : INewBookStoreSystem

  {

    OldBookStore oldBookStore = new OldBookStore();

    #region INewBookStoreSystem Members


    public void BuyBook(string isbnNumber, string cardNumber)

    {

      //NOTE : Find book title using isbn number

      string bookTitle = string.Empty;

      //NOTE : send bill

      int price = 1000;

      oldBookStore.BuyBook(bookTitle, price);

    }


    public void ChangeBook(string cardNumber)

    {

      //NOTE : Find card list using cardNumber

      //NOTE : Find bookTItle and buyDate


      DateTime buyDate = DateTime.Now;

      string bookTitle = string.Empty;


      oldBookStore.ChangeBook(bookTitle, buyDate);

    }


    #endregion

  } 

Posted by Y2K
,

Head First Design Patterns

Book 2009. 1. 7. 11:39

스토리가 있는 패턴 학습법

 

    

Design pattern에 대한 책은 찾아보면서 여러가지로 생각도 많이 들고, 보고 나서도 어떻게 사용해야지 될지 모르겠다는 생각이 무척 많이 든다. C# 3.0 Design pattern은 다 보고 나서, 과연 어디에 사용할 수 있을지 모르겠다는 생각만 무척 많이 들고, 상속을 이용한 구성만이 계속 머리에 남고 있을때 보기 시작한 책.

    

이번에는 책 한권 제대로 정리좀 해봐야지 될텐데. --; 

   

   

1. 바뀌는 부분은 캡슐화 된다.

2. 상속보다는 구성을 이용한다. (!! 가장 중요한 일이며, 가장 안지켜지는 일. -_-)

3. 구현이 아닌 interface에 맞춰서 프로그래밍한다.

4. 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야지 된다.

5. Class는 확장에 대해서는 열려있어야지만 변경에 대해서는 닫혀있어야지 된다.

6. 추상화된 것에 의존하라. 구상 class에 의존하지 않아야지 된다. (2번 항목과 같이 연결되는 부분. 이 부분에 대한 내용을 좀더 고민할 필요가 있음.) 

  

Design Pattern에 대해서 공부를 할때마다 느끼는 가장 큰 하나.

: 공부할때, 내가 이런 방법이 코딩에 좋겠다.. 싶어서 예전에 썼던 것들이 다 패턴이였구나.. 하는 생각이 들때가 많다. --;

SYNCmailMobile이 CommandPattern을 만들어서 구성된 것을 이제야 깨닫게 되었다니.. -_-;; 

Posted by Y2K
,