java设计模式中抽象工厂的定义及代码演示
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,本篇内容介绍了"java设计模式中抽象工厂的定义及代码演示"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2025年02月07日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安全错误
数据库的锁怎样保障安全
皮皮麻将软件开发公司
医保数据库调整的影响
如何得到db2数据库增量
腾讯360网络安全
exe偶尔会出现数据库错误
广州合纵网络技术有限公司
数据库 农药
深圳软件开发工程师招聘
网络安全类别是什么意思
服务器集成显卡关闭
分析网络安全问题现状
托普网络技术获得全国二等奖
优酷服务器如何搭建
服务器怎么删除聊天记录
无棣软件开发系统
玉门app软件开发
奇安信网络版杀毒 服务器
omnia网络安全性
服务器桥片riser卡
5g网络技术高通与华为
科技发展互联网社交群体
服务器安全狗软件的用法
崇明区服务软件开发售后服务
盐城市哪里有手机软件开发
湖北正规网络技术分类咨询报价
软件开发专业学校推荐
横琴 网络安全
查找数据库cmd
加强网络安全宣传
网络安全大赛有哪些团队