java设计模式(二)
Java设计模式之结构模式
???? 一):外观模式
主要作用: 进行调用方和实现方的隔离,这样当代码发生改变的时候,客服端的代码就不用再进行修改了,而只修改接口的实现类的细节即可。在调用方法的时候不在是调用具体的一个类了,而是调用提供的这个接口。
????? 也就是说,跟具体的业务类通信的时候不在是具体的类,而是使用这些类抽象出来的接口去通信了。?
???????
?????
????? 2)装饰模式:
???????????????????????? 装饰模式是我觉得比较有趣的一种模式,这种模式可以动态的去给一个类添加一些装饰,也就是添加动态的功能,从而使被装饰类功能更加完善。是对客服端动态的透明的可扩展的一种模式,是继承关系的一种替代,装饰模式是一种组合关系,闲话少说,先看图解吧。?
??????
?????????
?????? 从上面这个图我们可以看出,装饰模型要一个接口,要一个原始类,一个或者多个装饰类。然后原始类和装饰类都实现抽象接口。下面看代码:?
???????? 定义一个接口:
public interface AbstractCellPhone { public void call(); }
?????
???? 定义一个原始类(要被装饰的类):
???
??
public class Moto implements AbstractCellPhone{ public void 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! 你被装饰了。
???