java设计模式中抽象工厂的定义及代码演示
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容介绍了"java设计模式中抽象工厂的定义及代码演示"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2024年09月22日java设计模式中抽象工厂的定义及代码演示
本篇内容介绍了"java设计模式中抽象工厂的定义及代码演示"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1、抽象工厂定义
抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口。无须指定它们具体的类。适用场景:1) 客户端不依赖于产品类实例如何被创建、实现等细节2) 强调一系列相关的产品对象(属于同一个产品族)一起使用创建对象对象需要大量重复代码3) 提供一个产品类的库,所有产品以同样的接口出现,从而使客户端不依赖于具体的实现优点:1) 具体产品在应用层代码隔离,无须关心创建细节2) 将一个系列的产品族统一到一起创建缺点:1) 规定了所有可能被创建的产品集合,产品族中扩展新的产品困难,需要修改抽象工厂的集合2) 增加了系统的抽象性和理解难度
下图是抽象工厂的产品族和产品等级结构。同一行是一个产品族,比如同属美的公司生产的冰箱、空调。而同一列则是同一类产品,比如美的的空调、海尔的空调。工厂方法模式针对的产品等级结构,而抽象工厂模式针对的是产品族,这是工厂方法和抽象工厂模式最大的区别
。
2、代码演示
public abstract class Video { public abstract void produce();}public class JavaVideo extends Video { @Override public void produce() { System.out.println("录制Java课程视频"); }}public class PythonVideo extends Video { @Override public void produce() { System.out.println("录制Python课程视频"); }}
public abstract class Article { public abstract void produce();}public class JavaArticle extends Article { @Override public void produce() { System.out.println("编写Java课程手记"); }}public class PythonArticle extends Article { @Override public void produce() { System.out.println("编写Python课程手记"); }}
public interface CourseFactory { Video getVideo(); Article getArticle();}
public class JavaCourseFactory implements CourseFactory { @Override public Video getVideo() { return new JavaVideo(); } @Override public Article getArticle() { return new JavaArticle(); }}public class PythonCourseFactory implements CourseFactory { @Override public Video getVideo() { return new PythonVideo(); } @Override public Article getArticle() { return new PythonArticle(); }}
public class Test { public static void main(String[] args) { CourseFactory courseFactory = new JavaCourseFactory(); Video video = courseFactory.getVideo(); Article article = courseFactory.getArticle(); video.produce(); article.produce(); }}
"java设计模式中抽象工厂的定义及代码演示"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
工厂
产品
模式
品族
代码
对象
课程
演示
空调
设计模式
设计
内容
品类
客户
客户端
手记
接口
方法
更多
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
剑三双梦是哪个服务器
网络安全课是什么网站
什么专业可以做网络安全师
服务器的文件下载到本地
学校网络安全隐患排查存在的问题
数据库方言实现
软件开发接口国家标准
2021网络安全工作报告
网络安全 木马 论文
ftp等服务器实现
奉贤区项目数据库服务价钱
数据库服务器宕机原因有啥
齐博cms数据库
全球身份证件数据库
剑灵服务器编辑器
数据库的逻辑名称
武威市青少年网络安全知识
滨州化工软件开发服务
南昌共青团网络安全
软件开发有什么主题酒店
网络安全公益讲座心得体会
北京邮电大学网络安全排名
泾县巨型软件开发服务设备
敲数据库的软件
新郑网络安全系统价格
软件开发个人劳务费
中国网络安全企业注册
金融 软件开发 招聘
外协配套人员网络安全管理
国电网络技术有限公司待遇