首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

java设计形式(二)

2012-10-09 
java设计模式(二)Java设计模式之结构模式 ???? 一):外观模式 主要作用: 进行调用方和实现方的隔离,这样当

java设计模式(二)

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

??????? java设计形式(二)
?????


????? 2)装饰模式:

???????????????????????? 装饰模式是我觉得比较有趣的一种模式,这种模式可以动态的去给一个类添加一些装饰,也就是添加动态的功能,从而使被装饰类功能更加完善。是对客服端动态的透明的可扩展的一种模式,是继承关系的一种替代,装饰模式是一种组合关系,闲话少说,先看图解吧。?
?????? java设计形式(二)
?????????

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

???????? 定义一个接口:

         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! 你被装饰了。

???

热点排行