对工厂方法进行抽象。当增加新的产品时,不用改动工厂类。而是集成已有的工厂接口或者抽象工厂,创建新的工厂。这就是对扩展开发,对修改封闭。

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 }

最新文章

  1. Objective-C的面向对象中,类有真正的私有方法和私有属性么?
  2. super和this区别
  3. Object C学习笔记20-结构体
  4. Address localhost:1099 is already in use 的错误
  5. kali 重置 mysql 密码
  6. 一道模板元编程题源码解答(replace_type)
  7. JS中 submit提交与Form表单里的onsubmit的调用问题?
  8. jQuery Mobile 网格
  9. WPF界面设计技巧(7)—模拟电梯升降的缓动动画
  10. CSS active选择器与CSS hover选择器
  11. 浅谈IOC
  12. 深度优先搜索(DFS)专题讲座PPT截图【需要原稿的请留言或私信】
  13. Python 队列
  14. 数据库技术丛书:SQL Server 2016 从入门到实战(视频教学版) PDF
  15. Codeforces 1096D Easy Problem 【DP】
  16. CCNA学习与实验指南——第2章 网络互联和参考模型
  17. 比特股-去中心化交易所, STEEM - 去中心化社区, EOS - 下一代智能合约
  18. FastAdmin Bootstrap-table 特定某行背景变红
  19. December 06th 2016 Week 50th Tuesday
  20. 在Windos上安装Nginx

热门文章

  1. Mysql数据库基础第七章:流程控制结构
  2. 一步一步地完成题目——费解的开关(C/C++语言)递推、递归、顺序思维
  3. Android 添加shape, selector等资源文件
  4. datax clickhousewriter插件下载 elasticsearchwriter插件下载
  5. java 导入Excel数据校验判断哪行那列
  6. 【Excel】IF条件函数公式怎么用?
  7. node版本和用的包不兼容问题,头疼
  8. 九、Lambda、正则表达式
  9. RabbitMQ-01-使用Java进行简单消息发送与接收
  10. Oracle常用的日期操作函数 to_char()和to_date