论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
二十三种设计模式-工厂方法模式
二十三种设计模式-工厂方法模式
飞不高
论坛元老
|
2025-1-1 19:15:59
|
显示全部楼层
|
阅读模式
楼主
主题
1015
|
帖子
1015
|
积分
3045
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
工厂方法模式是一种创建型设计模式,其核心思想是通过界说一个创建对象的接口,让子类决定实例化哪一个类。工厂方法模式将对象的实例化推迟到子类中进行,从而使得扩展变得轻易,而不必要修改现有的代码,符合开闭原则(对扩展开放,对修改封闭)。
工厂方法模式的重要脚色
抽象产品(Product)
:界说了产品的接口,规定了全部详细产品都必须服从的接口。
详细产品(Concrete Product)
:实现或继承抽象产品脚色所界说的接口,由详细工厂类创建。
抽象工厂(Creator)
:声明了一个工厂方法,返回一个产品范例的对象。此方法由子类实现以创建详细产品对象。
详细工厂(Concrete Creator)
:实现抽象工厂的工厂方法,生成一个详细的产品实例。
工厂方法模式的实现步调
界说抽象产品
:创建一个抽象类或接口,界说产品的共有接口。
实现详细产品
:为每种产品提供一个详细的类,实现或继承抽象产品类。
界说抽象工厂
:创建一个抽象类或接口,其中包含一个工厂方法,该方法返回一个抽象产品范例的对象。
实现详细工厂
:为每种详细产品提供一个详细的工厂类,实现抽象工厂中的工厂方法,生成详细产品对象。
工厂方法模式的代码示例
// 抽象产品
interface Product {
void use();
}
// 具体产品A
class ConcreteProductA implements Product {
public void use() {
System.out.println("Using ConcreteProductA");
}
}
// 具体产品B
class ConcreteProductB implements Product {
public void use() {
System.out.println("Using ConcreteProductB");
}
}
// 抽象工厂
interface Creator {
Product factoryMethod();
}
// 具体工厂A
class ConcreteCreatorA implements Creator {
public Product factoryMethod() {
return new ConcreteProductA();
}
}
// 具体工厂B
class ConcreteCreatorB implements Creator {
public Product factoryMethod() {
return new ConcreteProductB();
}
}
// 客户端代码
public class FactoryMethodPatternDemo {
public static void main(String[] args) {
// 客户可以选择使用具体工厂A或B
Creator creatorA = new ConcreteCreatorA();
Product productA = creatorA.factoryMethod();
productA.use();
Creator creatorB = new ConcreteCreatorB();
Product productB = creatorB.factoryMethod();
productB.use();
}
}
复制代码
工厂方法模式的优点
代码的扩展性
:增加新产品和新工厂类时,不必要修改已有代码。
解耦
:客户端不必要知道详细的产品类,只必要知道产品接口。
封装性
:详细的创建逻辑被封装在工厂类内部。
工厂方法模式的缺点
类的个数增多
:每增加一个产品,就必要增加一个详细的工厂类。
体系的复杂度提高
:对于新的开发者来说,明确体系结构可能必要更多的时间。
工厂方法模式是实现对象创建和对象使用分离的有效手段,特别适用于必要根据条件动态创建对象的场景。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
飞不高
论坛元老
这个人很懒什么都没写!
楼主热帖
Java集合的lastlastIndexOfSubList()方 ...
WPF开发经验-实现自带触控键盘的TextBo ...
如何在 K8S 集群范围使用 imagePullSec ...
【关系型数据库】事务特性及事务隔离级 ...
Python批量采集百度资讯文章,如何自定 ...
微信小程序集合3(百度小说+电商+仿哗 ...
MapReduce开发
瓦片地图
浅谈售前的业务思维
Navicat 连接服务器不成功(Access den ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
Java
虚拟化与私有云
MES
物联网
.Net
网络安全
分布式数据库
快速回复
返回顶部
返回列表