设计模式-结构型软件设计模式(三)
程序员文章站
2024-01-20 15:40:28
...
外观模式
简介
外观模式用来隐藏一个软件系统的所有内部细节,只提供给客户类一个外观类,或者叫做接口类。客户类直接调用该外观类的方法即可,而不必担心这些方法对其他类的调用的内部细节。
外观模式角色
(1)外观角色:这是外观模式的核心,它被客户角色调用,因此它熟悉子系统的功能。其内部根据客户角色已有的的需求预定了几种功能组合。
(2)子系统角色:实现子系统的功能,对它而言,外观角色就和客户角色一样是未知的,它没有任何外观角色的信息和链接。
(3)客户角色:调用外观角色来完成要得到的功能。
示例
外观类
public class generalized
{
private student s;
private bus b;
...
public void read()
{
s = new student();
s.read();
}
public void run()
{
b = new bus();
b.run();
}
}
子系统角色
public class student
{
public void read(){...}
...
}
public class bus
{
public void drive(){...}
}
使用外观模式目的
为了是一系列复杂的接口提供一个统一的接口,使系统更容易使用,这个统一的接口可以被认为是更高级的接口,提供足够的功能,供客户程序直接调用。
优缺点
优点:
利用外观模式可以去掉子系统与客户程序间的直接绑定,从而提供子系统的独立性,也降低了客户程序与子系统的直接耦合度,此外,利用外观模式可以是系统层次化。
缺点:
外观类不存在已有的功能,以及对于那些不需要定制的用户来说,这种情况下,用户可以直接绕过外观类,直接调用子系统类。
上一篇: 关于反射与内省
下一篇: 通过反射来实现List转为JSON