设计模式之工厂方法模式
来源:互联网 发布:linux解压tar包 编辑:程序博客网 时间:2024/06/05 13:23
点击浏览 简单工厂模式
上次讲到简单工厂模式,将产品进行分割来设计,这样一来,就又有了新的问题。
如果我想增加一两CCar的话,这样一来,就需要添加一个CCar的类,并且修改工厂,因为之前用的是switch判断。这样一来,我们就得修改此类,
这样一来的话,我们在设计的时候就违反了【开-闭】原则。
下面让我来简单的修改一下【工厂方法模式】
--------------------------------------------------------------------------------------------我是分割线-----------------------------------------------------------------------------------------------
我们将之前的CarFactory修改一下,修改成接口。
public interface CarFactory {
public Car createCar();
}
创建两个工厂类实现CarFactory 。
public class ACarFactory implements CarFactory {
@Override
public Car createCar() {
return new Acar();
}
}
--------------------------------------------------------------------------
public class BCarFactory implements CarFactory {
@Override
public Car createCar() {
return new Bcar();
}
}
在测试类上的修改
public static void main(String[] args) {
CarFactory factory = new ACarFactory();
Car car = factory.createCar();
car.createCar();
System.out.println("--------------我的分割线--------------");
factory = new BCarFactory();
car = factory.createCar();
car.createCar();
}
结果
Acar.chejia()
Acar.color()
Acar.size()
--------------我的分割线--------------
Bcar.chejia()
Bcar.color()
Bcar.size()
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式 之 工厂方法
- 设计模式 之 工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 《设计模式》之工厂方法
- 设计模式之--工厂方法
- Ubuntu 安装网易云音乐
- MySQL多表连接分组(Group by)后的统计
- Ubuntu14.04下telnet的使用
- arcgis api JavaScript打印地图图例显示不正确
- 从零开始学_JavaScript_系列(63)——class(4)静态方法和new.target
- 设计模式之工厂方法模式
- mysql中char与varchar的区别分析
- YYWebImage使用
- Junit单元测试学习笔记三
- 485. Max Consecutive Ones
- oracle使用笔记
- 关于frameworks层源码编译
- Nio(九)ServerSocketChannel
- SQL中常用模糊查询的四种匹配模式&&正则表达式