hehebendan 发表于 2013-2-3 14:40:03

java设计模式(二)

Java设计模式之结构模式
     一):外观模式
主要作用: 进行调用方和实现方的隔离,这样当代码发生改变的时候,客服端的代码就不用再进行修改了,而只修改接口的实现类的细节即可。在调用方法的时候不在是调用具体的一个类了,而是调用提供的这个接口。
      也就是说,跟具体的业务类通信的时候不在是具体的类,而是使用这些类抽象出来的接口去通信了。 

        http://hiphotos.baidu.com/sevenxue2008/pic/item/d090ced555e6742fa38bb76b.jpg
     


      2)装饰模式:

                         装饰模式是我觉得比较有趣的一种模式,这种模式可以动态的去给一个类添加一些装饰,也就是添加动态的功能,从而使被装饰类功能更加完善。是对客服端动态的透明的可扩展的一种模式,是继承关系的一种替代,装饰模式是一种组合关系,闲话少说,先看图解吧。 
       http://p.blog.csdn.net/images/p_blog_csdn_net/a497785609/EntryImages/20090816/2.%D7%B0%CA%CE%C4%A3%CA%BD.jpg
         

       从上面这个图我们可以看出,装饰模型要一个接口,要一个原始类,一个或者多个装饰类。然后原始类和装饰类都实现抽象接口。下面看代码: 

         定义一个接口:
         public interface AbstractCellPhone    {      public void call();            }            
     定义一个原始类(要被装饰的类):
   
  public class Moto implements AbstractCellPhone{       publicvoid call(){         System.out.println("Hello Moto!")    }}      
      定义一个装饰类:
 
  
public class Decorate implements AbstractCellPhone{         AbstractCellPhone abst;   public Decorate(AbstractCellPhone a){      this.abst=a;   }   public void call(){      this.abst.call();      System.out.println("你被装饰了");}} 

 
         测试代码:
  
public class Test{               public static void main(String [] args){                     AbstractCellPhone   ac =new Moto();         AbstractCellPhone   abs= new Decorate(ac);         ac.call();   }} 
      最后输出: hello moto! 你被装饰了。
   
页: [1]
查看完整版本: java设计模式(二)