工厂模式三 抽象工厂模式
来源:互联网 发布:js 表单如何拼接字符串 编辑:程序博客网 时间:2024/05/22 03:13
抽象工厂模式可以用来生产不同产品族的全部产品。(对于新增加的产品,无能为力;但是支持增加产品族)
抽象工厂模式其实是工厂方法模式的升级版本,在有多个业务品种和分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方案。
首先创建发动机引擎的接口与不同层次引擎的实现类:
public interface Engine { void run(); void start();}//高端引擎class LuxuryEngine implements Engine{ @Override public void run() { System.out.println("转的快!"); } @Override public void start() { System.out.println("启动快!可以自动启停!"); }}//低端引擎class LowEngine implements Engine{ @Override public void run() { System.out.println("转的慢!"); } @Override public void start() { System.out.println("启动慢!"); }}
创建座椅接口与不同层次座椅的实现类:
public interface Seat { void massage();}class LuxurySeat implements Seat { @Override public void massage() { System.out.println("可以自动按摩!"); }}class LowSeat implements Seat { @Override public void massage() { System.out.println("不能按摩!"); }}
创建轮胎接口与不同层次轮胎的实现类:
public interface Tyre { void revolve();}class LuxuryTyre implements Tyre { @Override public void revolve() { System.out.println("旋转不磨损!"); }}class LowTyre implements Tyre { @Override public void revolve() { System.out.println("旋转磨损快!"); }}
创建CarFactory工厂接口:
public interface CarFactory { Engine createEngine(); Seat createSeat(); Tyre createTyre();}
针对不同层次的汽车,就要使用不同层次的汽车工厂类来创建,继承CarFactory接口即可:
public class LuxuryCarFactory implements CarFactory { @Override public Engine createEngine() { return new LuxuryEngine(); } @Override public Seat createSeat() { return new LuxurySeat(); } @Override public Tyre createTyre() { return new LuxuryTyre(); }}public class LowCarFactory implements CarFactory { @Override public Engine createEngine() { return new LowEngine(); } @Override public Seat createSeat() { return new LowSeat(); } @Override public Tyre createTyre() { return new LowTyre(); }}
最后,客户端实现:
public class Client { public static void main(String[] args) { CarFactory factory = new LuxuryCarFactory(); Engine e = factory.createEngine(); e.run(); e.start(); }}
0 0
- 三、抽象工厂模式
- (三)抽象工厂模式
- 三 抽象工厂模式
- 工厂模式(三)--抽象工厂模式
- 工厂模式三 抽象工厂模式
- 模式三(抽象工厂模式)
- 工厂三兄弟之抽象工厂模式
- 工厂三兄弟之抽象工厂模式
- 工厂三兄弟之抽象工厂模式
- 工厂三兄弟之抽象工厂模式
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 抽象工厂模式(三)
- (三)抽象工厂模式
- 抽象工厂模式(三):抽象工厂模式概述
- 设计模式之工厂模式(三)之抽象工厂模式
- 工厂模式/抽象工厂模式
- 字典树的应用
- 分组背包问题Matlab实现——之基本背包变形
- ADT新建项目出现appcompat_v7包,删除后styles报错
- spring中的PropertyPlaceholderConfigurer访问properties文件配置
- ORA-28000 用户被锁定
- 工厂模式三 抽象工厂模式
- 51nod - 1136 欧拉函数(欧拉函数)
- sql server 当中Go的用法
- Android数据存储之GreenDao 3.0 详解
- 最近在使用MediaRecorder录制视频的时候遇到crash
- linux下源码安装R-3.1.2.tar.gz和RStudio开发工具
- Android Studio 导入包设置
- centos安装配置tftp服务器
- ExpandListView-------List集合