A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小车车 中级黑马   /  2015-6-4 21:45  /  255 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //面向接口编程
  2. //1.简单工厂模式。假如让computer类组合一个printer对象,如果有一天系统需要重构,需要使用Butterpriner来代替printer,这就需要
  3. //打开computer类源代码进行修改。这样导致很不方便。
  4. //为了避免这个问题,工厂模式建议让computer类组合一个output类型对象,将computer类与printer类完全分离。
  5. public class Computer{
  6.         private Output out;
  7.         public Computer(Output out){
  8.                 this.out=out;
  9.         }
  10.         //定义一个模拟获取字符串输入的方法
  11.         public void keyIn(String msg){
  12.                 out.getData(msg);
  13.         }
  14.         public void print(){
  15.                 out.out;
  16.         }
  17.         }

  18. public class OutputFactory{
  19.         public Output getOutput(){
  20.                 return new Printer();
  21.         }
  22.         public static void main(String[] args){
  23.                 OutputFactory of=new  OutputFactory();
  24.                 Computer c= new Computer(of.getOutput());
  25. }
  26. }

  27. public class BetterPrinter implements Output{
  28.        
  29. }
  30. //上面的BetterPrinter类实现了Output接口,因此也可当成output对象使用,于是只要把outputFactory工厂类的getoutput()方法中代码改为:
  31. //return new BetterPrinter();
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马