菜鸟硕枫设计模式系列之3 工厂方法模式
发布日期:2021-10-01 08:45:05
浏览次数:1
分类:技术文章
本文共 1525 字,大约阅读时间需要 5 分钟。
工厂方法模式也是一种创建对象的设计模式,属于创建型设计模式。工厂方法模式定义了对象工厂接口,抽象出了获取对象实例方法,而将具体的创建对象工作放到了具体的类创建工厂进行。 工厂方法模式类图: [img]http://dl.iteye.com/upload/attachment/364517/538be5db-fcb6-38f8-bb2b-480cf3b9bdab.jpg[/img] 具体实现代码示例: 工厂接口:package factoryPattern; public interface Factory { Fruit factorygetInstance(); }具体工厂1:
package factoryPattern; public class AppleFactory implements Factory{ public Fruit factorygetInstance(){ // TODO Auto-generated method stub return new Apple(); } }具体工厂2:
package factoryPattern; public class PearFactory implements Factory{ public Fruit factorygetInstance(){ // TODO Auto-generated method stub return new Pear(); } }对象接口:
package factoryPattern; public interface Fruit { String getFruitName(); }具体对象1:
package factoryPattern; public class Apple implements Fruit{ @Override public String getFruitName(){ // TODO Auto-generated method stub return "This is apple"; } }具体对象2:
package factoryPattern; public class Pear implements Fruit { @Override public String getFruitName() { // TODO Auto-generated method stub return "This is pear"; } }测试类:
package factoryPattern; public class FactoryMethodTest { public static void main(String[] args){ Factory fac = new AppleFactory(); System.out.println(fac.factorygetInstance().getFruitName()); fac = new PearFactory(); System.out.println(fac.factorygetInstance().getFruitName()); } }说明: 与简单工厂模式相比,工厂方法模式将对象的创建与抽象工厂分离,当要新增类对象的创建时,只需要实现一个具体工厂和一个具体的类(新增类对象的类)即可,满足了开闭原则。缺点在于,多出了很多具体的创建对象工厂,存在一种类对象,则要有相应的对象工厂对应。
转载地址:https://blog.csdn.net/iteye_2655/article/details/81970351 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年03月24日 00时43分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
c语言 无错 但只运行一半,求哈夫曼编码时程序运行到一半就终止了,编译无错...
2019-04-21
android 限速工具,Android下载器之限速篇
2019-04-21
html刷新ajax实现原理,AJAX的原理—如何做到异步和局部刷新
2019-04-21
html中列表菜单加文字请选择,html中下拉菜单
2019-04-21
读书郎平板中android,读书郎学生平板电脑怎么用 使用方法详解【图文】
2019-04-21
html5 调用摄像头 支持IE,JS调用本地摄像头拍照(兼容各大浏览器及IE8+)
2019-04-21
es审计日志_elasticsearch 事务日志translog
2019-04-21
dw1510_超低温种子储存柜
2019-04-21
docker 查看容器磁盘大小_查看 docker 容器使用的资源
2021-06-24
python consul服务发现_Prometheus+Consul服务自动发现监控
2021-06-24
excel提取不规则字段_利用excel服务器来实现3级或者更多级的层级关联
2021-06-24