外观模式

简介:

          外观模式的意图是为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

          降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。

 

介绍:

外观模式结构

 

特征
优点1.对客户屏蔽了子系统组件,从而简化了接口,减少了客户处理的对象数目并使对子系统的使用更加简单。
2.实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件是紧耦合的。松耦合使得子系统的组件变化不会影响到它的客户。
缺点1.增加新的子系统可能需要修改外观类或客户端的源代码,这样就违背了”开闭原则“。
特点

1.复杂的接口转换为统一的接口。

角色
外观角色(Facade)所有从客户端发来的请求委派到相应的子系统去,传递给相应的子系统对象处理。
子系统角色(SubSystem)可以有一个或者多个子系统角色,每一个子系统可以不是一个单独的类,被外观角色调用。

 

使用: 

本案例的意思是画图所需的准备。

    //SubSystem
    public class Pen
    {
        public void Prepare()
        {
            //do something
        }
    }

    public class Paper
    {
        public void Prepare()
        {
            //do something
        }
    }

    public class Ruler
    {
        public void Prepare()
        {
            //do something
        }
    }

    //Facade
    public class Shape
    {
        private Pen pen;
        private Paper paper;
        private Ruler ruler;

        public Shape()
        {
            pen = new Pen();
            paper = new Paper();
            ruler = new Ruler();
        }

        public void Draw()
        {
            pen.Prepare();
            paper.Prepare();
            ruler.Prepare();
        }
    }

 

            //外观模式调用
            Shape shape = new Shape();
            shape.Draw();

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值