六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 63|回复: 0

java设计模式(二)

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-2-3 14:40:03 | 显示全部楼层 |阅读模式
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! 你被装饰了。
   
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表