黑马程序员技术交流社区

标题: 工厂设计模式、代理设计模式 [打印本页]

作者: 安日成    时间: 2015-5-1 18:58
标题: 工厂设计模式、代理设计模式

1 工厂设计模式:
interface Fruit{
public void eat();
}

class Apple implements Fruit{
public void eat(){
   System.out.println("吃苹果");
}
}

class Orange implements Fruit{
public void eat(){
   System.out.println("吃橘子");
}
}

class Factory{
        public static Fruit getInstance (String classname){
          Fruit fru=null;
          if(classname.equals("orange")){//     其实就是将子类的new 操作进行转换
            fru=new Orange();
          }
          if(classname.equals("apple")){
            fru=new Apple();
          }
          return fru;
        }
}

public class NewDemo{
        public static void main(String [] args){

                Fruit f=Factory.getInstance("apple");
                f.eat();

                Fruit b=Factory.getInstance("orange");
                b.eat();
          
        }
}


2 代理设计模式
interface Network{
        void browse();
}

class Real implements Network{
        public void browse(){
     System.out.println("上网");
        }
}

class Proxy implements Network{  
  private Network  network;     // 在任何时候对可以用接口来定义对象  然后根据多态性  不
  public Proxy(Network network){  // 不同的传入对象可以调用方法
    this.network=network;
  }

  public void check(){
    System.out.println("检查上网用户的合法性");// 增加的功能
  }

  public void browse(){
   this.check();
   this.network.browse();
  }
}

public class NewDemo{
  public static void main(String [] args){
     Proxy net=new Proxy(new Real());//  把真实的上网传递给 代理

         // Network net=new Proxy(new Real);// 这里真实的上网可以是任何一个继承于接口
                                          // 类的匿名对象

         net.browse();//然后代理就开始上网
  }
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2