最近公司在做一个项目,是电信的一个项目,感觉规模蛮大的,由于还是属于实习生,基本上也不会接触一些核心的东西,但由于自己的好学,索性向项目经理要了项目的一部分源代码(都是自己反编译过来的),看了一个礼拜之后,觉得虽然可能代码的逻辑能看懂,但对于代码的设计可能还是有点欠缺,比如说代码使用了什么设计模式?为什么要使用这种设计模式?我想,对于这些问题并不是去听别人的讲解自己就能体会 的,更多的是要自己的积累,有些东西可能是只可意会,不可言传吧!

   针对以上问题,我必须寻找一个突破口,我想,我要开始积累一些东西了,哪怕要花好长的时间我也在所不惜。

   下面是讲设计模式的:关于设计模式的定义百度百科里面可以找到,这里主要记录自己对设计模式的理解并会有一个例子来说明。

 

  这一讲主要讲解设配器模式,可能以后会补充其他的设计模式。

 

  关于适配器模式,可以这么理解,适配器模式可以实现两个不相关的类或者接口的相互调用,而无须对原有类或接口的内容进行改变,适配器模式又分为类适配器模式与对象适配器模式。

 下面主要是例子,能加深理解:

 1:所谓类适配器模式,无非就是类与类之间的继承关系的体现。

  我们现在定一个接口Money,里面有一个方法,是实现挣钱操作的

 pubilc interface Money{

    public float makeMoney();

}

而我们现在要用一个类实现这个接口完成挣钱操作,但是我们发现之前在我们的代码里面有一个类MyMoney已经实现了挣钱操作,所以我们可以这样.

//挣钱类

public class MyMoney{

  //挣钱方法

     public float setMoney(){

          return 1234.0;

    }

}

public class Test extends MyMoney implements Money{

    public float makeMoney(){

        return setMoney();

    }

}

上面我们无须实现挣钱方法,因为我们有限成的。

2:对象适配器模式,一对象来实现适配器模式

假设上面的接口中还有一个花钱的方法

pubilc interface Money{

    public float makeMoney();

    public float doMoney();

}

而我们现在要实现这个接口并完成挣钱与花钱操作,但是我们发现之前在另一个类中也含有花钱这个方法,

//挣钱类

public class MyMoney{

  //挣钱方法

     public float setMoney(){

          return 1234.0;

    }

}

//花钱类

public class ToMoney{

   //花钱方法

 public float    getMoney(){

     return 100;

   }

}

但我们知道java不支持多继承,所以这里对象适配器模式就出来了。

public class Test implements Money{

    private MyMoney mm=null;

    private ToMoney tm=null;

    public Test(MyMoney mm,ToMyoney tm){

       this.mm=mm;

      this.tm=tm;

    }

     public float makeMoney(){

          return this.mm.setMoney();

     }

    public float doMoney(){

         return this.tm.getMoney();

     }

}