PoEAA ch18 Layer Supertype

PoEAAデザインパターン勉強メモ

出典: 


Layer Supertype

A type that acts as the supertype for all types in its layer.

レイヤーを構成する全オブジェクト共通の振る舞いを、レイヤー共通の基底クラスに移す

How It Works

  • 他のパターンと併用
  • 例: Domain Model

    • 下記の機能を共通の基底クラスに移す

      • Identity Fieldsを取り扱う処理

        • 主キー等
  • 例: Data Mappers

    • Domain Modelが共通の基底クラスを持っていることに基づいて、
      Domain Modelに共通の操作を全Data Mapper共通の基底に移せる

When to Use It

  • レイヤーの全オブジェクト共通機能があるとき
  • 著者は自動でやること多し

Example: Domain Object (Java)

class Domain Object...

    private Long ID;
    public Long getID() {
        return ID;
    }
    
    public void setID(Long ID) {
        Assert.notNull("Cannot set a null ID", ID)
        this.ID = ID;
    }
    ...