zoukankan      html  css  js  c++  java
  • 装饰

    1:意图
      在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说的Façade 模式。(外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式)

    2:类图


    3:代码
        /// <summary>
        
    /// 声音子系统
        
    /// </summary>

        public class SoundSystem
        
    {
            
    public void SoundOn()
            
    { }

            
    public void SoundOff()
            
    { }
        }


        
    /// <summary>
        
    /// 光电子系统
        
    /// </summary>

        public class LightSystem
        
    {
            
    public void LightOn()
            
    { }

            
    public void LightOff()
            
    { }
        }


        
    /// <summary>
        
    /// 警报系统门面
        
    /// </summary>

        public class AlarmFacade
        
    {
            
    private SoundSystem sound = new SoundSystem();
            
    private LightSystem light = new LightSystem();

            
    public void TurnOnAlarm()
            
    {
                sound.SoundOn();
                light.LightOn();
            }


            
    public void TurnOffAlarm()
            
    {
                sound.SoundOff();
                light.LightOff();
            }

        }

    //调用
                Bll.Facade.AlarmFacade alarm = new Bll.Facade.AlarmFacade();
                alarm.TurnOnAlarm();
                alarm.TurnOffAlarm();

    4:架构方面的应用
     N层系统:


     例如:Duwamish
     
    5:总结
    Facade模式注重简化接口与其实现。
    Adapter模式注重转换接口。
    Bridge模式注重分离接口与实现。
    Decorator模式注重稳定接口的前提下为对象扩展功能。
  • 相关阅读:
    最小路径和
    S2 深入.NET和C#编程 机试测试错题积累
    S2 深入.NET和C#编程 笔试测试错题积累
    影院项目的内容信息
    抽象类和抽象的方法注意事项
    六种设计原则
    体检套餐的笔记
    C#图解 类和继承
    深入类的方法
    S2 深入.NET和C#编程 三:使用集合组织相关数据
  • 原文地址:https://www.cnblogs.com/tommyli/p/1061476.html
Copyright © 2011-2022 走看看