其他系统 对外接口设计_外观模式:统一接口 VS.暴露细节

什么是接口——java语言中的接口

Java类中定义的所有public型的方法都可以被简单地视为该类对外提供的接口。

抽象类中public型的抽象方法,可以被看成是整棵继承树的对外接口。

743d0ca97966d6f7ce2780fd4dee1925.png
b2971bbbd1ea69e1461204fcc754771a.png
2b6adb490da8b96cd4c9e7746b0ba6d0.png

对于Java语言,针对接口编程就是指针对interface类型的编程。

什么是接口——c++语言的接口

由于没有提供interface类型,对于C++语言来说,针对接口的编程更多指的是针对抽象类的编程。

外观模式

一个子系统有多个不同的类,或有多棵继承树时。

外观模式——设计意图

外观模式可以为一个子系统中的多个类提供统一的接口。外观模式定义了一个高层次的接口,并使一个子系统更易于使用。

把一个组件单元构建成一个子系统有助于减少软件的复杂性,而且可以使子系统和其他组件的通信关系更简洁、更容易控制,可以最大幅度地降低组件之间的耦合度。

外观模式——基本结构

1f4060b3540b9752e64234a4dce5f0f4.png

子系统的接口不一定是具体的外观类,它和外观类之间的关系:

(1)子系统的接口是一个抽象类,不包含任何属性和具体实现,其中定义的所有的接口函数都是纯虚函数;而外观类是该抽象类的派生类,隐藏在子系统中。在这种实现方式中,客户程序所看到的只有一个纯粹的接口,而具体的实现都被外观类封装到了子系统的内部。

(2)子系统的接口就是外观类的头文件,客户程序可能会看到一些外观类的私有属性和私有方法。

外观类一般应以单件类的形式出现,这样,客户程序就可以通过单件类的静态方法获得子系统的唯一接口实例。

外观类要负责创建和销毁子系统中其他的相关对象,管理其他对象的生命周期。

对于一个子系统来说,外观类就是这个子系统的边界类。

总结

外观模式是面向对象编程中的关键模式,也是封装子系统实现细节的有效手段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值