设计模式之外观模式-引导篇及原理-创新互联-成都快上网建站

设计模式之外观模式-引导篇及原理-创新互联

外观模式-引导篇及原理

目前创新互联建站已为成百上千家的企业提供了网站建设、域名、雅安服务器托管、网站托管维护、企业网站设计、惠农网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

设计模式之外观模式-引导篇及原理

来看看司小司的新项目-家庭影院控制接口项目

设计模式之外观模式-引导篇及原理

家庭影院设备:

DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机等等。

对于的类对象:DVDPlayer、Projector、Stereo、Popcorn、Screen、TheaterLights etc...

类图如下:

设计模式之外观模式-引导篇及原理

我们知道,这些设备需要遥控器,同时这些设备都对外提供了接口。如果一个设备一个遥控器是不是很麻烦。现在需求是,为了方便省事。只需要一个设备来处理。

来源:凯哥Java(kaigejava)

我们先来看看传统的控制接口设计,步骤如下图:

设计模式之外观模式-引导篇及原理

看一场家庭影院,还这么多步骤。确实很麻烦。我们来分析:爆米花机可以看作是一个子系统、投影仪是一个子系统、音响可以看作是一个子系统等等。我们将各个设备都单独的看作是一个子系统,我们就会发现,这些子系统或许存在着内部关联关系或者是需要统筹协调工作的。有没有更好的解决方案呢?

设计模式之外观模式-引导篇及原理

司小司调研之后,决定使用外观模式这种设计模来实现这种需求。我们先来看看外观模式是什么。

我们可以将以上各个设备相识或者有关联的操作放到一个方法中,然后对外在提供统一的一个对象接口。这样,比如说,我们先要准备:爆米花机开机、投影仪开机、屏幕自动放下这一组操作放到一个方法中。DVD碟片选择、灯光调暗、播放DVD这一组操作放到一个方法中。关闭各种设备操作放到一个方法中。最后我们就得到了如下的类图:

设计模式之外观模式-引导篇及原理

经过上面分析,我们可以知道:

外观模式:对外提供了一个统一的接口,来访问子系统中一群功能相关接口。

外观模式定义了一个高层接口,让子系统更容易使用。

我们来看看代码结构:

设计模式之外观模式-引导篇及原理

说明:

爆米花机、投影仪、屏幕等我们使用的都是单例模式。因为这些东西,一个家庭一个就可以了。所以这里就使用了单例模式来处理的。

凯哥个人博客:www.kaigejava.com

凯哥公众号:凯哥Java(kaigejava)

在测试类中:

我们调用了准备及播放功能。运行结果:

我们发现,对外提供接口解耦提高了。

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


网页题目:设计模式之外观模式-引导篇及原理-创新互联
标题来源:http://kswjz.com/article/ddoghp.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流