最近公司在做一个项目,是电信的一个项目,感觉规模蛮大的,由于还是属于实习生,基本上也不会接触一些核心的东西,但由于自己的好学,索性向项目经理要了项目的一部分源代码(都是自己反编译过来的),看了一个礼拜之后,觉得虽然可能代码的逻辑能看懂,但对于代码的设计可能还是有点欠缺,比如说代码使用了什么设计模式?为什么要使用这种设计模式?我想,对于这些问题并不是去听别人的讲解自己就能体会 的,更多的是要自己的积累,有些东西可能是只可意会,不可言传吧!
针对以上问题,我必须寻找一个突破口,我想,我要开始积累一些东西了,哪怕要花好长的时间我也在所不惜。
下面是讲设计模式的:关于设计模式的定义百度百科里面可以找到,这里主要记录自己对设计模式的理解并会有一个例子来说明。
这一讲主要讲解设配器模式,可能以后会补充其他的设计模式。
关于适配器模式,可以这么理解,适配器模式可以实现两个不相关的类或者接口的相互调用,而无须对原有类或接口的内容进行改变,适配器模式又分为类适配器模式与对象适配器模式。
下面主要是例子,能加深理解:
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();
}
}