设计不设计就看你如何想

61 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天,点击查看活动详情

前言

  • 与多程序在前期开发都仅仅是按照满足要求来进行开发实现的,而不会去操心后期的功能迭代维护的城呢吧你,按照约束开发前期可能会很通过。。面对程序开发时我们不能仅仅面对当下,还需考虑未来。

  • 合成复用原则组合原则或者说叫做聚合原则。。他们之间都是一种耦合的作用。你可以能又要说了不是说高内聚低耦合的。但是你要记住一点不管怎么低耦合。耦合还是会存在的。不耦合怎么叫做协同开发了。你不与人交流如何让别人知道你的想法呢?

  • 顾名思义合成复用原则他是想让我们能够复用我们的逻辑代码。在依赖时尽量使用组合,聚合的方式来实现功能的整合,其次才是使用继承的方式

  • 上面代码像我们展示了如何制造汽车。可想而知当我们汽车种类和颜色种类越来越多的情况下,我们的子类也会越来越多。对应的UML图示如下

合成复用

  • 针对上面我们提到的问题,我们进行如下修改

  • 如果代码看到比较凌乱,我这里整理了下对应的UML图。应该看这比较清晰点。

  • 按照这样的发展,子类会越来越多不利于我们的管理,而且对我们的代码改动行也是非常大的。不够灵活。假如我们除了颜色和车行驶能源角度还有是否自动这个参数,那么我们所有的子类都得重新编写。这无疑是不可取的,无疑也是代码不够灵敏的。

小结

  • 我们总是说面向接口编程。不管是接口也好,还是抽象也罢。我们的目的只有一个提高程序的复用性。复用性提高了自然就减少了同类的产生。也提高了我们对代码的维护性

设计原则总结

  • 到这里我们所有的设计原则已经全部梳理完了。【单一职责】【接口隔离原则】【依赖倒转原则】【里氏替换原则】【开闭原则】【迪米特法则】【合成复用原则】七大设计原则
  • 这些原则是我们在设计初期尽量遵循的。但是我们需要看清一个事实,我们没必要也没法完全的遵从这些设计原则。因为在实际的场景中除了代码的优雅我们还需要考虑成本。