
设计模式之一简单工厂模式
发布日期:2021-05-07 00:04:38
浏览次数:20
分类:精选文章
本文共 1468 字,大约阅读时间需要 4 分钟。
提纲
- 简单工厂
- 工厂模式
- 抽象工厂
细节
情景: 奥迪车 只能生产奥迪,生产不了冰淇凌 我想都生产
简单工厂 :我有一个很牛的工厂,什么都会生产,你给我什么 我就生产什么 落地:package com.mcd.test.test;// 1 公共接口abstract class Product{ public abstract void Show();}class ProductA extends Product{ @Override public void Show() { System.out.println("A"); }}class ProductB extends Product{ @Override public void Show() { System.out.println("B"); }}class ProductC extends Product{ @Override public void Show() { System.out.println("C"); }}//2 工厂生产过程class Factory { public static Product Manufacture(String ProductName){ switch (ProductName){ case "A": return new ProductA(); case "B": return new ProductB(); case "C": return new ProductC(); default: return null; } }}//3实际应用 public static void main(String[] args){ Factory mFactory = new Factory(); try { mFactory.Manufacture("A").Show(); //客户要产品B mFactory.Manufacture("B").Show(); //客户要产品C mFactory.Manufacture("C").Show(); //客户要产品D mFactory.Manufacture("D").Show(); }catch (NullPointerException e){ System.out.println("没有这一类产品"); } }
总结
一般工厂就这样
- 1 写公共接口
- 2 写实现类
- 3 写工厂制造方法
- 4 写应用 缺点: 一旦这个工厂不能正常工作,整个系统都会受到影响;一旦添加新产品就不得不修改工厂类的逻辑。 应用场景:(1)工厂类负责创建的对象比较少,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。(2)客户端只知道传入工厂类的参数,对于如何创建对象并不关心。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月24日 09时19分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue解决数据更新,界面未更新的方法
2021-05-10
我用wxPython搭建GUI量化系统之wx.grid实现excel功能
2021-05-10
我用wxPython搭建GUI量化系统之wx.Toolbar实现工具栏
2021-05-10
我用wxPython搭建GUI量化系统之wx.TextCtrl实现文本框
2021-05-10
我用wxPython搭建GUI量化系统之最小架构的运行
2021-05-10
我用wxPython搭建GUI量化系统之Sizer布局管理与页面切换
2021-05-10
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2021-05-10
我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
2021-05-10
我用wxPython搭建GUI量化系统之财务选股工具添加日历和排序
2021-05-10
搭建量化系统|wxPython布局管理实现多只股票走势对比界面
2021-05-10
对双向链表的学习
2021-05-10
2019年达观杯文本智能信息抽取挑战赛 四到十名队伍分享
2021-05-10
一文掌握Python正则表达式
2021-05-10
selenium+python之切换窗口
2021-05-10
Unknown database ‘modd‘
2021-05-10
重载和重写的区别:
2021-05-10
finally,final,finalize() 的区别
2021-05-10
搭建Vue项目步骤
2021-05-10
docker镜像命令
2021-05-10