工厂方法模式

public interface Cake {
     void make();
}
public interface CakeFactory {
     Cake makeCake();
}
public class CreamCake implements Cake{
    /**
     * 鲜奶蛋糕
     */
    @Override
    public void make() {
        System.out.println("Making cream cake");
    }
}

public class FruitCake implements Cake {
    /**
     * 水果蛋糕
     */
    @Override
    public void make() {
        System.out.println("Making fruit cake");
    }
}
public class CreamCakeFactory implements CakeFactory{
    @Override
    public Cake makeCake() {
        System.out.println("Milking cows");
        return new CreamCake();
    }
}
public class FruitCakeFactory implements CakeFactory {

    @Override
    public Cake makeCake() {
        System.out.println("Picking fruit");
        return new FruitCake();
    }
}
public class Client {
    public static void main(String[] args) {
        CreamCakeFactory creamCakeFactory = new CreamCakeFactory();
        Cake cake1 = creamCakeFactory.makeCake();
        cake1.make();
        System.out.println("=================");
        FruitCakeFactory fruitCakeFactory = new FruitCakeFactory();
        Cake cake2 = fruitCakeFactory.makeCake();
        cake2.make();
    }
}

运行结果

Milking cows
Making cream cake
=================
Picking fruit
Making fruit cake
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容