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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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();//然后代理就开始上网
  }
}


0 个回复

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