您的位置:首页 > 其它

【设计模式】六大原则

2019-07-11 10:12 267 查看

作者:王子越-Silvia
原文:https://www.geek-share.com/detail/2705409143.html

我朋友小A开了一家自助水果超市,无售货员。顾客装好水果后,只需在结账台扫描一下水果,电脑就会自动识别水果,再自动计算出总价。顾客看到应付价格后再通过扫描二维码的形式付款。


  • 单一职责原则(只有一个功能)
why 如果类的职责过多,其会相互干扰,从而可能会造成功能的不稳定性。而且,当想要更改时,也容易造成结构的破坏。 what 引起类变化的原因只有一个。
  • 开放-封闭原则(一国两制)
why 少改代码。 what 对软件实体(类,模块,函数等)应该可以扩展,但不能修改。即对源代码不能修改,但可以扩展。举个栗子,我国实行的一国两制就是对“原来的不能修改,但可扩展”的体现。
  • 依赖倒转原则(相对独立)
why 还拿小A的水果店为例,先开始只卖中国产的,结果想扩大店面,所以就进口些“澳大利亚水果”。先开始系统中只有对苹果,梨等的识别和结算,这时要加上牛油果等的。所以说是要求增加一些对等的功能。 what 不好的代码会需要改好多处,而好的代码只需改对应的一块代码即可。所以说编码时要针对接口,而不是实现;要针对抽象(接口、抽象类),而不是细节。这在面向对象中叫“高内聚 低耦合”。
再举些例子,用以加深理解: 例子1:如果电脑中的硬盘坏了,那只需换硬盘即可,而不用把整个电脑都换了,这也符合依赖倒转原则。 例子2:高层模块不符合要求了改高层模块,而不用动底层模块;反之亦然。 例子3:这也像一些为了孩子不离婚的夫妻,对方在外面再怎么找小三,OK,没关系。但是在家里就会有联系,而这个家里就是“接口”。不知道理解的对不对
  • 里氏代换原则(儿子要能继承父亲的公司)
why 小A老了,想把水果店继承给儿子。那有什么条件能保证水果店继续开下去呢?最简单的一点就是儿子要有父亲的经营能力。这是最基本的。至于儿子会不会再在此基础上定个“周年庆”等活动来促销,这又是一回事了。 what 子类拥有父类的全部属性和功能。所以在软件里面,让子类替换父类,程序的行为无变化。
  • 迪米特法则(类之间不交流)
why 降低类之间的耦合,增强复用性 what 两个类之间不直接发生关系,如果需要联系,找第三者协调。 举个栗子,为提高部门的工作效率,部员A和部员B在有工作时,自身不协调,而是去找主管分配。
  • 接口隔离原则(接口尽量小)
why 提高内聚,减少对外交互,使接口用最少的方法去完成最多的事情。 what 一个类对另一个类的依赖应该建立在最小的接口上

小结

原则是一根线,我们在开发时要尽量围绕在其周围。既不要刻板,也不要脱离

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: