- //面向接口编程
- //1.简单工厂模式。假如让computer类组合一个printer对象,如果有一天系统需要重构,需要使用Butterpriner来代替printer,这就需要
- //打开computer类源代码进行修改。这样导致很不方便。
- //为了避免这个问题,工厂模式建议让computer类组合一个output类型对象,将computer类与printer类完全分离。
- public class Computer{
- private Output out;
- public Computer(Output out){
- this.out=out;
- }
- //定义一个模拟获取字符串输入的方法
- public void keyIn(String msg){
- out.getData(msg);
- }
- public void print(){
- out.out;
- }
- }
- public class OutputFactory{
- public Output getOutput(){
- return new Printer();
- }
- public static void main(String[] args){
- OutputFactory of=new OutputFactory();
- Computer c= new Computer(of.getOutput());
- }
- }
- public class BetterPrinter implements Output{
-
- }
- //上面的BetterPrinter类实现了Output接口,因此也可当成output对象使用,于是只要把outputFactory工厂类的getoutput()方法中代码改为:
- //return new BetterPrinter();
复制代码
|
|