设计模式的从许多优秀的软件中总结出来的 , 使用设计模式能够实现可复用、可维护、开发人员之间方便沟通设计和理解代码。
Tips
- 对于模式的使用 , 不能拘泥于格式 , 事实上根据需要模式是可以演化的
- 另外要适可而止 , 比如一个简单的方法就能搞定的事情 , 就没有必要滥用设计模式了
设计原则
面向对象设计原则 (SOLID)
- 单一职责原则 (Single Responsibility Principle SRP):一个对象应该只包含单一的职责 ,并且该职责被完整的包括在一个类中;或者这样描述:一个类应该有且仅有一个引起变化的因素
- 开闭原则 (Open Closed Principle ,OCP):它指出软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。这意味着您可以在不更改其现有代码的情况下向软件实体添加新功能或行为
- 里氏替换原则 (Liskov Substitution Principle ,LSP):它指出子类应该能够在不影响程序功能的情况下替换其超类, 这意味着子类不应违反其超类的任何约定或期望
- 接口隔离原则 (Interface Segregation Principle ,ISP):不应强制任何代码依赖于它不使用的方法, 这可以通过使软件更加模块化和独立来减少副作用和所需更改的频率。
- 依赖倒置原则 (Dependence Inversion Principle ,DIP):它指出高级模块应该依赖于抽象而不是具体的实现 , 这有助于解耦高层和低层模块,更容易更改低层模块而不影响高层模块
另外两个面向对象设计原则
- 合成复用原则(Composite Reuse Principle ,ISP ): 优先使用对象组合 , 而不是继承来到达复用目的
- 迪米特法则 (Law of Demeter ,LoD):旨在减少对象之间的耦合。它指出一个对象应该只与靠近它的对象交互,例如它自己、它的参数、它的局部变量等,它还指出一个对象不应该知道其他对象的内部细节
其他设计原则
- 不要重复原则 (DRY:Don't Repeat Yourself):是指编程过程中不写重复代码,将能够公共的部分抽象出来
- 保持简单原则 (KISS:keep it simple):简单应该是设计的目标之一,应该避免不必要的复杂性 。KISS 原则这个术语是美国海军于 1960 年创造的,它可以应用于界面设计、产品设计、软件开发等各个学科
- 用不上原则? (YAGNI:You Ain’t Gonna Need It):它指出程序员在认为必要之前不应添加功能, 这个想法是为了避免在将来可能不会使用或不需要的功能上浪费时间和资源。