1700470139
设计模式之禅 23.3 门面模式的应用
1700470140
1700470141
23.3.1 门面模式的优点
1700470142
1700470143
门面模式有如下优点。
1700470144
1700470145
❑减少系统的相互依赖
1700470146
1700470147
想想看,如果我们不使用门面模式,外界访问直接深入到子系统内部,相互之间是一种强耦合关系,你死我就死,你活我才能活,这样的强依赖是系统设计所不能接受的,门面模式的出现就很好地解决了该问题,所有的依赖都是对门面对象的依赖,与子系统无关。
1700470148
1700470149
❑提高了灵活性
1700470150
1700470151
依赖减少了,灵活性自然提高了。不管子系统内部如何变化,只要不影响到门面对象,任你自由活动。
1700470152
1700470153
❑提高安全性
1700470154
1700470155
想让你访问子系统的哪些业务就开通哪些逻辑,不在门面上开通的方法,你休想访问到。
1700470156
1700470157
1700470158
1700470159
1700470160
设计模式之禅 23.3.2 门面模式的缺点
1700470161
1700470162
门面模式最大的缺点就是不符合开闭原则,对修改关闭,对扩展开放,看看我们那个门面对象吧,它可是重中之重,一旦在系统投产后发现有一个小错误,你怎么解决?完全遵从开闭原则,根本没办法解决。继承?覆写?都顶不上用,唯一能做的一件事就是修改门面角色的代码,这个风险相当大,这就需要大家在设计的时候慎之又慎,多思考几遍才会有好收获。
1700470163
1700470164
1700470165
1700470166
1700470167
设计模式之禅 23.3.3 门面模式的使用场景
1700470168
1700470169
❑为一个复杂的模块或子系统提供一个供外界访问的接口
1700470170
1700470171
❑子系统相对独立——外界对子系统的访问只要黑箱操作即可
1700470172
1700470173
比如利息的计算问题,没有深厚的业务知识和扎实的技术水平是不可能开发出该子系统的,但是对于使用该系统的开发人员来说,他需要做的就是输入金额以及存期,其他的都不用关心,返回的结果就是利息,这时候,门面模式是非使用不可了。
1700470174
1700470175
❑预防低水平人员带来的风险扩散
1700470176
1700470177
比如一个低水平的技术人员参与项目开发,为降低个人代码质量对整体项目的影响风险,一般的做法是“画地为牢”,只能在指定的子系统中开发,然后再提供门面接口进行访问操作。
1700470178
1700470179
1700470180
1700470181
1700470183
设计模式之禅 23.4 门面模式的注意事项
1700470184
1700470185
23.4.1 一个子系统可以有多个门面
1700470186
1700470187
一般情况下,一个子系统只要有一个门面足够了,在什么情况下一个子系统有多个门面呢?以下列举了几个。
[
上一页 ]
[ :1.700470138e+09 ]
[
下一页 ]