面向对象设计模式总结一

面向对象设计的优点
面向对象设计的优点:可维护、可扩展、可复用、灵活性好。

目标
面向对象设计的目标:高内聚,低耦合。

设计模式分类
面向对象常见的23种设计模式主要分为:创建型、结构型和行为型。

  • 创建型:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
  • 结构型:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
  • 行为型:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介模式、解释器模式

面向对象设计原则
1. 单一职责原则:
就一个类而言,应该仅有一个引起它变化的原因。
1.1 如果你能够想到多于一个动机去改变一个类,那么这个类就具有多于一个的职责,就应该考虑类的职责分离。
2.开放-封闭原则:
软件实体(类,模块,函数等)应该可以扩展,但是不可修改。
2.1 无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对于他设计的模块
应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。
2.2 面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。
3.依赖倒转原则:
高层模块不应该依赖低层模块。两个都应该依赖抽象。
抽象不应该依赖细节,细节应该依赖抽象。
3.1 针对接口编程,不要对实现编程。
4.里氏代换原则:
子类型必须能够替换掉它们的父类型。
4.1 一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。
也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。
5.迪米特法则:(最少知识原则)
如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。
如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
5.1 在类的结构设计上,每一个类都应当尽量降低成员的访问权限。
5.2 类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成涉及。
6.合成/聚合复用原则:
尽量使用合成/聚合,尽量不要使用类继承。
6.1 聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分
6.2 合成则是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。
6.3 优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,
并且不太可能增长为不可控制的庞然大物。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章