1日30分英語

習慣化するために

P1-81 Iterator Adapter Template Factory Singleton Prototype

GoFの23個のデザインパターン

デザインパターンと言ういいものがある

Iterator

一つ一つ数え上げる

  • AggregateとIteratorは対応している。片方の実装を変えるともう片方も。

Adapter

一皮かぶせて再利用

  • 継承を使った方法。クラスによるAdapterパターン
  • 委譲を使った方法。インスタンスによるAdapterパターン

使うシチュエーション

  • 適合される側に手を加えずに変更できる。
  • 既存クラスのソースがなくても仕様があればOK
  • バージョンアップと互換性

Template Method

スーパークラスで処理の枠組みを決め、サブクラスでその具体的内容を実装する

public abstract class XXXXXX{
   public abstract void A;
   public abstract void B;
   public abstract void C;
   public void D{
      //A,B,Cを使って実装
      A();
      for(int i = 0; i < 5; i++){
         B();
      }
      C();
   }
}

Factory Method

インスタンス作成をサブクラスにまかせる

newによる実際のインスタンス生成を、インスタンス生成のためのメソッド呼び出しに変えることで、具体的なクラス名による束縛からスーパークラスを解放している

  • そこまでピンと来ていない。

Singleton

インスタンスが絶対に1つしかないことを保証したい時に使う

public class Singleton {
   private static Singleton singleton = new Singleton();
   private Singleton(){
      //
   }
   public static Singleton getInstance(){
      return singleton;
   }
}

Prototype

コピーして新しいインスタンスを作る

  • ちょっとよく分からなかった。

次は、「Java言語で学ぶデザインパターン入門」です。
この本が読んでみたくて前回までのJava本を読んでいました。

6つのデザインパターンについて読みましたが、FactoryとPrototypeについては
何となくピンと来ていない。
練習問題をやったりしないとダメそうですね。

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門