抽象工厂模式

2018-06-27  本文已影响0人  MrL槑槑

要点

/**
 * 步惊云 接口
 */
public interface BJY {
    void ErShiXiong();
    void PaiYunZhang();
}

/**
 * 步惊云 产品族
 */
class BJYFirstStage implements BJY {

    @Override
    public void ErShiXiong() {
        System.out.println("步惊云 二师兄 first");
    }

    @Override
    public void PaiYunZhang() {
        System.out.println("步惊云 排云掌 first");
    }
}

class BJYTwoStage implements BJY {

    @Override
    public void ErShiXiong() {
        System.out.println("步惊云 二师兄 two");
    }

    @Override
    public void PaiYunZhang() {
        System.out.println("步惊云 排云掌 two");
    }
}
/**
 * 聂风 接口
 */
public interface NF {

    void SanShiDiXiong();
    void FengShenTui();

}

/**
 * 聂风 产品族
 */
class NFFirstStage implements NF {

    @Override
    public void SanShiDiXiong() {
        System.out.println("聂风 三师弟 first");
    }

    @Override
    public void FengShenTui() {
        System.out.println("聂风 风神腿 first");
    }
}

class NFTwoStage implements NF {

    @Override
    public void SanShiDiXiong() {
        System.out.println("聂风 三师弟 two");
    }

    @Override
    public void FengShenTui() {
        System.out.println("聂风 风神腿 two");
    }
}
public interface FYFactory {
    NF createNF();
    BJY createBJYF();
}

class FirstStageFYFactory implements FYFactory {

    @Override
    public NF createNF() {
        return new NFFirstStage();
    }

    @Override
    public BJY createBJYF() {
        return new BJYFirstStage();
    }
}

class TwoStageFYFactory implements FYFactory {

    @Override
    public NF createNF() {
        return new NFTwoStage();
    }

    @Override
    public BJY createBJYF() {
        return new BJYTwoStage();
    }
}
public class Client {
    public static void main(String[] args) {
        FYFactory firstFY = new TwoStageFYFactory();
        BJY bjyf = firstFY.createBJYF();
        bjyf.ErShiXiong();
        bjyf.PaiYunZhang();
    }
}





工厂模式要点&应用场景工厂模式要点&应用场景
上一篇 下一篇

猜你喜欢

热点阅读