首 页文章中心下载中心动画频道客户留言泉州论坛资讯中心游戏中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:今日下载站 -> ASP/PHP/.NET/XML -> 文章内容-> 让你插上翅膀(decorator) 退出登录 用户管理
栏目导航
· 办公自动化 · 软件工程
· Java/J2EE/JSP · VC++/C#/C
· Visual Basic · Delphi/Perl
· ASP/PHP/.NET/XML · PowerBuilder
· SQL Server/My SQL · Oracle
· Access · DB2/FOXPRO
· Windows · Linux
· Unix · CorelDRAW
· AutoCAD/Firework · Photoshop
· Dreamweaver · Flash/3DS Max
· 网页特效 · 安全防护
热门文章
相关文章
· [图文] 超炫效..
· [图文] 实用教..
· [图文] 独家视..
· [图文] 用历史..
· [图文] Photo..
· [图文] 用两个..
· [图文] photo..
· [图文] 菜鸟学..
· [图文] Photo..
· [图文] 菜鸟扣..

让你插上翅膀(decorator)

作者:佚名  来源:本站整理  发布时间:2006-12-22 12:58:46  发布人:今日下载站

减小字体 增大字体

 

对你的对象进行扩展这是在平常不过的事情了.问题是,你该如何做?很多方案不是吗?例如派生子类

是的.这是个不错的方案.可是如果是在这样一种情况.我们需要在运行期间添加功能并且有客户程序

来决定合适添加何种功能.那么单纯的扩展子类对象能够办到吗?那么我们必须想办法新的办法了.是

的.你也许已经想到我要说的Decorator模式了吧.由它来帮你在想要的时候插上翅膀.

通过接口来组合是个非常好的方法.Adapter模式就是那么做的.

public interface IWing{
    public void install();
}

那么接下来.我们要插入一对真正的翅膀了"天使之翼"
public  class AngellWing : IWing{
  public void install(){
      Console.WriteLine("天使之翼");
  }
}

public  class KingWing : IWing{
  public void install(){
      Console.WriteLine("黄金之翼");
  }
}

public class Decorator : IWing{
    private IWing  Wing;//翼接口对接准备
    private string WingName;
  
    public Decorator (IWing w,string wn){
      this.Wing=w;
      this.WingName=wn;
    }
    public setWing(IWing w,string wn){
      this.Wing=w;
      this.WingName=wn;
    }

    public void install (){
     DecoratorWing();
     Wing.install();
    }
   
    private void DecoratorWing(){
      Console.WriteLine("正在插入... "+WingName+"  ...");
    }
}


//客户实际调用

class Client{
    public static int Main(string[] args){
             IWing AWing=new AngellWing();
             IWing decoator=new Decoator(AWing,"天使之翼");//装入对接对象
             decoator.install();//实际装入的是天使之翼

             //如果我们改变翼的引用那么实际装入的翼也会变换
             AWing=new KingWing();
             decoator.install();
             return;
    }
}

假设如果还有很多的翼可供选择.那么就Decoator的作用就很明显了.客户只需要调用一个

Decoator的install方法就可以了.并且装入相应的翼作为配件就可以了.如同上面还使用了

黄金之翼.好了.Decoator模式也介绍完毕

 

 


本文地址:http://www.newbooks.com.cn/info/25620.html
[] [返回上一页] [打 印] [收 藏]
下一篇文章: 魔力拼图(builder)
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录
Copyright © 2002-2006 cntoday.com.cn. All Rights Reserved .
Powered by:NewAsp SiteManageSystem Version 2.1 SP1 1030