Java设计模式之抽象工厂(02)
对工厂方法进行抽象。当增加新的产品时,不用改动工厂类。而是集成已有的工厂接口或者抽象工厂,创建新的工厂。这就是对扩展开发,对修改封闭。
1 package Pak;
2
3 public abstract class Automobile {
4 public abstract void Run();
5 }
package Pak; public class Bus extends Automobile { @Override
public void Run() {
System.out.println("Bus Run");
}
}
package Pak; public class Jeep extends Automobile { @Override
public void Run() {
System.out.println("Jeep Run.");
}
}
1 package Pak;
2
3 public interface IProduce {
4 public Automobile Produce();
5 }
package Pak; public class BusFactory implements IProduce {
@Override
public Automobile Produce() {
// TODO Auto-generated method stub
return new Bus();
}
}
package Pak; public class JeepFactory implements IProduce {
@Override
public Automobile Produce() {
return new Jeep();
}
}
1 package Pak;
2
3 public class Main {
4
5 public static void main(String[] args) throws Exception {
6 IProduce busFactory=new BusFactory();
7 busFactory.Produce().Run();
8
9 IProduce jeepFactory=new JeepFactory();
10 jeepFactory.Produce().Run();
11 }
12 }
Java设计模式之抽象工厂(02)的更多相关文章
- Java 设计模式之抽象工厂模式(三)
原文地址:Java 设计模式之抽象工厂模式(三) 博客地址:http://www.extlight.com 一.前言 上篇文章 <Java 设计模式之工厂模式(二)>,介绍了简单工厂模式和 ...
- Java设计模式系列-抽象工厂模式
原创文章,转载请标注出处:https://www.cnblogs.com/V1haoge/p/10755412.html 一.概述 抽象工厂模式是对工厂方法模式的再升级,但是二者面对的场景稍显差别. ...
- java设计模式之抽象工厂模式
上一篇文章(http://www.cnblogs.com/liaoweipeng/p/5768197.html)讲了简单工厂模式,但是简单工厂模式存在一定的问题,如果想要拓展程序,必须对工厂类进行修改 ...
- Java设计模式之——抽象工厂
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在抽 ...
- java设计模式(三)--抽象工厂模式
转载:http://zz563143188.iteye.com/blog/1847029 前面的工厂方法模式虽然清晰,但还是感觉有些繁琐,通常使用的还是抽象工厂模式. 工厂方法模式有一个问题就是,类的 ...
- [译]Java 设计模式之抽象工厂
(文章翻译自Java Design Pattern: Abstract Factory) 抽象工厂模式针对工厂模式增加了抽象层.如果我们使用抽象工厂模式和工厂模式比较的话,很明显抽象工厂模式增加了一个 ...
- Java设计模式之抽象工厂
概述 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计模式 ...
- Java 设计模式之抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在抽 ...
- [java] java 设计模式(2):抽象工厂模式(Abstract Factory)
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这 ...
- Java设计模式(3)——抽象工厂模式
抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的.抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象. 一.产品族和产品等级结构 为 ...
随机推荐
- ionic4 可能忽略的一些细节
1.iOS中,页面被状态栏遮挡的问题 有的说 具体是解决是 在config.xml 配置如下代码 <preference name="StatusBarStyle" ...
- 项目管理 VS. 个人计划
注会考试临近,好好的安排一下自己的时间.做个小计划是很有必要的了. 突然想到一个软件也许可以帮到我的忙,那就微软提供的办公软件 Project,大学时候就知道Project软件的存在,但是始终没有机会 ...
- excel添加下拉列表
2016年数据验证,2010是数据校验
- webpack5基础用法2
webpack的基础用法2 webpack的优化方向 提升开发体验 提升打包构建速度 减少代码体积 优化代码运行性能 SourceMap 生成一个.map文件,形成一个映射, 可以通过错误找到源文件 ...
- 批量创建xshell会话
import re import os import openpyxl from openpyxl import Workbook,workbook from concurrent.futures i ...
- PS设计非常漂亮酷炫的金色字体效果
方法/步骤 1.在PS里面新建一个黑色背景 2.在图层上 写上比较粗一点的字. 3.鼠标右击图层,选择混合模式,进行调整. 选择颜色叠加,注意颜色是深黄色. 4.转移到混合模式里面的渐变叠加,渐变的颜 ...
- 2、k8s 基础环境安装
3 k8s 环境配置 3.1 基础环境准备 所有机器执行 #各个机器设置自己的域名 我的设置为 hostnamectl set-hostname ks8-master.hostnamectl set- ...
- 前端js校验小数点
let result = (value.toString()).indexOf("."); if (result != -1 && value.toString() ...
- shell语法5-判断语句、循环语句、函数
一.判断语句 if-then形式类似于C/C++中的if-else语句. 1.单层if命令格式:if conditionthen 语句1 语句2 ...fi 2.单层if-else命 ...
- 代码格式 linux
indent -kr -i8 -ts8 -sob -l80 -ss -bs -psl test.c