在经典的外观模式中,通常一个对象为更复杂的东西提供了一个简化的接口。
正如Gang-of-Four所说的那样(尽可能地接近“官方”):
外观(185)为子系统中一组接口提供了一个统一的接口。外观定义了一个更高级别的接口,使子系统更容易使用。
还有
...一个外观仅仅抽象出子系统对象的接口,使它们更易于使用;它不定义任何新功能,并且子系统类也不知道它。
或者,正如Unmesh在https://dev59.com/9m435IYBdhLWcg3wvys5#5242476中所说:
外观屏蔽了用户对系统复杂细节的认识,并为他们提供了一个简化的视图,易于使用。它还将使用系统的代码与子系统的详细信息解耦,使以后修改系统变得更容易。
单一职责原则建议我们:
一个类或模块应该有一个,而且只有一个,改变的原因。
根据Bob叔叔(http://en.m.wikipedia.org/wiki/Single_responsibility_principle)的说法,由于Facade的设计使用户屏蔽了多种“更改原因”,那么这两个想法如何共同工作呢? Facade是否有与其实现相关的子系统数量一样多的更改原因?
正如Gang-of-Four所说的那样(尽可能地接近“官方”):
外观(185)为子系统中一组接口提供了一个统一的接口。外观定义了一个更高级别的接口,使子系统更容易使用。
还有
...一个外观仅仅抽象出子系统对象的接口,使它们更易于使用;它不定义任何新功能,并且子系统类也不知道它。
或者,正如Unmesh在https://dev59.com/9m435IYBdhLWcg3wvys5#5242476中所说:
外观屏蔽了用户对系统复杂细节的认识,并为他们提供了一个简化的视图,易于使用。它还将使用系统的代码与子系统的详细信息解耦,使以后修改系统变得更容易。
单一职责原则建议我们:
一个类或模块应该有一个,而且只有一个,改变的原因。
根据Bob叔叔(http://en.m.wikipedia.org/wiki/Single_responsibility_principle)的说法,由于Facade的设计使用户屏蔽了多种“更改原因”,那么这两个想法如何共同工作呢? Facade是否有与其实现相关的子系统数量一样多的更改原因?