java简单工厂模式实例,java设计模式之工厂模式
00-1010 1.工厂方法模式2简介。工厂方法模式3的UML3类图。工厂方法模式4的角色描述。代码实现5。工厂模式6的再探索。优点和缺点。应用场景
目录
定义:工厂方法模式是工厂方法模式的进一步抽象。它的优点是可以使系统在不修改原代码的情况下引入新产品,即可以满足开闭原则。定义一个创建对象的接口,让子类决定实例化哪个类,把一个类的实例化延迟到子类。
1. 工厂方法模式介绍
00-1010 AbstractFactory:提供创建产品的接口,调用方通过该接口可以访问特定工厂的工厂方法来创建产品。
ConcreteFactory:实现抽象工厂定义的方法,完成具体产品的创建。
抽象产品:定义产品规格,描述产品的主要特性和性能。
具体产品:实现了定义抽象产品的方法。有具体的工厂来创造产品,具体的工厂与具体的产品一一对应。
00-1010工厂方法模式实现:
/* * *抽象工厂:提供具体工厂*/公共接口产品的通用方法{ public void show();}公共类具体产品1实现产品{ @ override public void show(){ system . out . println(特定产品1显示. ));}}公共类ConcreateProduct 2实现Product { @ override Public void show(){ system . out . println(特定产品2显示. ));}}/* * *抽象工厂*/公共接口抽象工厂{公共产品createproduct();}/* * *混凝土工厂1生产混凝土产品1 */公共类混凝土工厂1实现抽象工厂{ @ override public product create product(){混凝土产品1混凝土产品1=新混凝土产品1();System.out.println(混凝土工厂1生产混凝土产品1 . );返回混凝土产品1;}公共类混凝土工厂2实现抽象工厂{ @ override public product create product(){ system . out . println(混凝土工厂2生产混凝土产品2 . );返回新的concreate product 2();}}调用方法:
//获取具体产品1 product product=newconcretefactory 1()。create product();product.show()。产品product1=新混凝土厂2()。create product();product 1 . show();使用步骤:
创建抽象产品类,定义产品的公共方法,创建具体产品类(实现抽象产品接口),定义生成的具体产品,创建抽象工厂类,定义具体工厂的公共接口,创建具体产品实例对应的方法,调用者调用具体工厂类的方法,从而创建不同的具体产品实例。
00-1010问题解决:解决了简单工厂类的新产品需要修改工厂类的方法逻辑,也就是不要开封闭原则的问题。
退出特定产品创建,进入工厂类的子类(特定工厂)。此时,工厂类不再负责所有产品的创建,而是给出了具体工厂必须实现的接口。这样,工厂方法在增加新产品时,不需要修改工厂类的逻辑,而是增加一个新的工厂子类,符合开闭原则。
00-1010优点:
灵活性强。对于新产品的创建,只需要多写一个对应的工厂类即可。用户只需要引导厂名就可以得到想要的产品,不需要引导产品的具体创建过程。缺点:
类的数量太多,增加了复杂度。每个工厂只能生产一个产品,第二个弊端可以通过抽象工厂来解决。
00-1010客户只关注产品制造的厂名,不需要知道具体的产品名称。
关于Java对工厂方法模式的深入探索和解释,本文到此结束。更多相关Java工厂方法内容,请搜索之前关于流行IT的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。