设计模式(4)--AbstractFactory(抽象工厂模式)--创建型
1.模式定义:
2.模式特点:
3.使用场景:
4.模式实现:
(1)抽象工厂角色:
//发动机以及型号 public interface Engine { } public class EngineA extends Engine{ public EngineA(){ System.out.println("制造-->EngineA"); } } public class EngineBextends Engine{ public EngineB(){ System.out.println("制造-->EngineB"); } } //空调以及型号 public interface Aircondition { } public class AirconditionA extends Aircondition{ public AirconditionA(){ System.out.println("制造-->AirconditionA"); } } public class AirconditionB extends Aircondition{ public AirconditionB(){ System.out.println("制造-->AirconditionB"); } }
(2)具体工厂角色:
//创建工厂的接口 public interface AbstractFactory { //制造发动机 public Engine createEngine(); //制造空调 public Aircondition createAircondition(); }
(3)抽象产品角色:
//为宝马320系列生产配件 public class FactoryBMW320 implements AbstractFactory{ @Override public Engine createEngine() { return new EngineA(); } @Override public Aircondition createAircondition() { return new AirconditionA(); } } //宝马523系列 public class FactoryBMW523 implements AbstractFactory { @Override public Engine createEngine() { return new EngineB(); } @Override public Aircondition createAircondition() { return new AirconditionB(); } }
(4)具体产品角色:
public class Customer { public static void main(String[] args){ //生产宝马320系列配件 FactoryBMW320 factoryBMW320 = new FactoryBMW320(); factoryBMW320.createEngine(); factoryBMW320.createAircondition(); //生产宝马523系列配件 FactoryBMW523 factoryBMW523 = new FactoryBMW523(); factoryBMW320.createEngine(); factoryBMW320.createAircondition(); } }
5.优缺点:
(1)抽象工厂模式优点:
(2)抽象工厂模式缺点:
转载于:https://www.cnblogs.com/yysbolg/p/7410567.html
设计模式(4)--AbstractFactory(抽象工厂模式)--创建型相关推荐
- AbstractFactory抽象工厂模式(创建型模式)
1.new 的问题 常见的对象创建方法: //创建一个Road对象 Road road=new Road(); new的问题:实现依赖,不能应对具体实例的变化 怎么理解上面这句话呢? 可以这样理解:我 ...
- JavaScript 23 种设计模式之 4 抽象工厂模式
JavaScript 23 种设计模式之 4 抽象工厂模式 概念与特点 结构与实现 应用场景 应用实例 总结 概念与特点 概念: 提供一组相关或相互依赖对象的接口.抽象工厂模式是工厂方法模式的升级版, ...
- 设计模式C#描述——抽象工厂模式
设计模式C#描述--抽象工厂模式 阅读此文应先阅读简单工厂模式与工厂方法模式 抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广. 假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产 ...
- 设计模式二、抽象工厂模式
设计模式part2 1. 抽象工厂模式 工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题, ...
- C++设计模式之工厂模式(创建型模式)
学习软件设计,向OO高手迈进! 设计模式(Design pattern)是软件开发人员在软件开发过程中面临的一般问题的解决方案. 这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来 ...
- FactoryMethod工厂方法模式升级成AbstractFactory抽象工厂模式
具体参考抽象工厂(AbstractFactory)模式-创建型模式,本文在FactoryMethod工厂方法模式(创建型模式)的基础上进行业务进一步抽象,不做详细原理介绍. 1.在FactoryMet ...
- 【设计模式】之抽象工厂模式
创造性设计模式 创造型模式主要是为了实例化类所用.进一步又分为类创建.对象创建模式. 类创建模式 类创建模式主要基于继承方式进行实例化 对象创建模式 对象创建模式主要基于委托机制进行实例化 Abstr ...
- 【设计模式】之抽象工厂模式详解与应用(三)
开心一刻 [问:"怎么样才能给足男人面子"? 神回复:"露出腿上的淤青啊".] 课程介绍 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工 ...
- 设计模式之【抽象工厂模式】
抽象工厂模式 (Abstract Factory Pattern) 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 主要解决:主要解决接口选择的问题. 何时使用:系统的产品 ...
最新文章
- 开发日记-20190712 关键词 读书笔记 《Perl语言入门》Day 8
- hdu 5367(线段树+区间合并)
- 每天一道LeetCode-----给定一个矩阵,如果某个元素是0,就将所在行所在列上所有元素否置0
- json数据交换的例了
- northwind中文 for mysql_学习心得 | PHP与mysql通信的若干问题
- 线段树线段树的创建线段树的查询单节点更新区间更新
- 如何在Android上创建透明活动?
- Servlet 实现验证码
- Android驱动开发过程中常用的adb指令
- word“您的组织策略阻止我们为您完成此操作”解决记录
- Bing必应搜索引擎打开新标签默认页的修改
- 十问十答 | 王峰对话投资人郑刚:特斯拉穿越生死无数次 看好电动车未来
- Word-VBA:替换文字
- 使用智遥工作流,优化SAP请购流程
- 获取前N天/月/年的日期
- 从爬虫构建数据集到CNN模型的验证码识别,一步一步搭建基于Python的PC个人端12306抢票程序
- poi-util 加强 POI 相关操作工具包
- new URL(“www.jjj.com“)
- 域名证书是SSL证书吗?域名证书和SSL证书有啥区别?
- Java如何学才能快速入门(零基础入门)
热门文章
- spring4.0之三:@RestController
- 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
- 探索ArrayList自动改变size真相
- Maven把一个Application转换成WebProject
- C#导出Excel总结
- apache站点优化——长连接
- cp linux 显示进度条_Unix/Linux/Mac os下 文件互传
- 基于消息队列 RocketMQ 的大型分布式应用上云最佳实践
- 基于实时计算Flink版的场景解决方案demo