Newer
Older
DesignCraft / src / main / java / designPatternExtensions / Bridge.java
@c-okada c-okada 16 days ago 1 KB 複数パターン再現
package designPatternExtensions;

import models.objectOrientedTransfer.*;

import java.util.ArrayList;

//メモ
//https://github.com/iluwatar/java-design-patterns/tree/master/bridge

public class Bridge {

    public static DataTransferDesign create() throws IllegalRelationException {
        ObjectNode sword = new ObjectNode("Sword");
        ObjectNode soulEatingEnchantment = new ObjectNode("SoulEatingEnchantment");
        ObjectNode data = new ObjectNode("String");

        Relation transferRelation = new Relation(sword, soulEatingEnchantment, MultiplicityValue.OneToOne);
        DataTransferContext context = new DataTransferContext(
                new ArrayList<>(), transferRelation, data, "data", PushPullValue.PUSH);

        DataTransferDesign design = new DataTransferDesign(context);

        DependencyInversion di1 = new DependencyInversion(sword, new InterfaceNode(sword, "Weapon"));
        design.addDependencyInversion(di1);

        DependencyInversion di2 = new DependencyInversion(soulEatingEnchantment, new InterfaceNode(soulEatingEnchantment, "Enchantment"), sword);
        design.addDependencyInversion(di2);

        return design;
    }
}