進化パターンのメタモデル 名前 1 1 進化パターン 1..* 構成要素 サブクラスの追加 : 名前 : 進化パターン SubClass: 構成要素 サブクラスの追加 SuperClass: 構成要素 サブクラスの追加 1 SubClass * SuperClass 特殊化の意味 サブクラスの追加 1 継承する SuperClass * SubClass クラス継承による Null Object の追加 1 Component 継承する 0..1 Null Component Interfaceのジェネリック化 1 Interface 持つ 0..* 0..1 参照する 参照する Component * 実装/継承する Type Parameter 1 1..* 1..* SubComponent : Interfaceのジェネリック化 MyInterface : Interface Componet : Componet SubComponetA : SubComponet SubComponetB : SubComponet : Interfaceのジェネリック化 MyInterface : Interface T extends Component : Type Parameter Componet : Componet SubComponetA : SubComponet SubComponetB : SubComponet Interface Adapterの導入 1..* 具象クラス 1 実装する 1..* 0..1 Interface 1..* 1 0..1 0..1 InterfaceAdapter 継承する 0..1 実装する : Interface Adapterの導入 MyClassA: 具象クラス MyInterface : Interface MyClassB: 具象クラス : Interface Adapterの導入 MyClassA: 具象クラス MyClassB: 具象クラス MyInterface : Interface MyInterfaceAdapter : InterfaceAdapter Interfaceへのメソッドの追加 1..* 1..* 具象クラス 1 持つ 1..* 1 具象メソッド 1 実装する 実装する 1 1 Interface 1 持つ 1..* 抽象メソッド : Interfaceへのメソッドの追加 MyInterfaceImpl: 具象クラス MyInterface : Interface methodA : 具象メソッド methodA : 抽象メソッド : Interfaceへのメソッドの追加 MyInterfaceImpl: 具象クラス MyInterface : Interface methodA : 具象メソッド methodA : 抽象メソッド methodB : 具象メソッド methodB : 抽象メソッド getter/setterの移動 1 1 ComponentA 0..1 0..1 setter getter 0..1 ComponentB 0..1 使用する 使用する 1 フィールド 0..1 ComponentA : ComponentA 1 0..1 : getter/setterの移動 ComponentB : ComponentB setName : setter name : フィールド getName : getter ComponentA : ComponentA : getter/setterの移動 ComponentB : ComponentB setName : setter name : フィールド getName : getter サブクラスの追加 1 継承する * SubClass SuperClass : SuperClasss : サブクラスの追加 SubClassA : SubClass SubClassB : SubClass クラス継承による Null Object の追加 1 0..1 継承する Component Null Component : クラス継承による Null Object の追加 Component : Component : クラス継承による Null Object の追加 Component : Component NullComponent : Null Component Concrete Factory の追加 1 Factory 1..* Concrete Factory 1 Product 1..* Concrete Product MyConcreteProductA : ConcreteProduct MyConcreteProductB : ConcreteProduct MyFactory : Factory : Concrete Factory の追加 MyConcreteFactoryA : ConcreteFactory MyConcreteFactoryB : ConcreteFactory MyProduct : Product 実装クラスの追加 1 1..* 実装する Interface MyInterface : Interface InterfaceImpl : 実装クラスの追加 MyInterfaceImlA : InterfaceImpl MyInterfaceImlB : InterfaceImpl
© Copyright 2024 ExpyDoc