面向对象的的设计(OOD)
任务
耦合与内聚
衡量软件设计质量
首要标准
满足软件的功能需求
好的设计
可读性
可复用性
可扩展性
可维护性
高内聚 低耦合:是所有优秀软件的共同特征
一个类做的职责越单一,内聚度就越高
尽量使用抽象耦合去替代具体耦合,增加代码的灵活性
里氏替换原则
在项目中判断是否该继承而使用的原则,父类出现的地方子类一定可替换.如果父类的方法在子类中发生了畸变,或父类的方法在子类中不适用,则应该断开两个类的父子关系.继承有自身的缺点,父类的方法或属性子类无条件继承
依赖倒转原则
分层时低层设计接口或抽象类于高层进行绑定遵循的是依赖倒转原则,高层绑定的不是低层的实体,而是抽象,面向抽象编程,而不是面向具体编程
组合聚合原则
尽量使用组合而非继承来达到复用的目的,继承有自身非缺陷,只能单根继承所以不能使用继承方式达到多个类代码的重用
接口隔离原则
尽量定义小接口,避免定义大接口,使用专门的接口要比统一的接口好,不要让用户面对自己用不到的方法,便于组织和分工
迪米特法则
软件实体之间应该尽量减少交互,不要因为一个类的变化而导致另一个类的变化
单一职责原则
一个类只应该有一个 引起它变化的原因,不要让一个类有多个引起它变化的原因。换句话说,一个类应该和一个职责相关的业务。不要让一个类承担过多的原则
开闭原则
软件实体应该面向修改关闭,面向扩展开发.其实现的核心是抽象.将相同的部分抽象出来,便于代码的重用,将不同的代码也抽象出来,便于功能的扩展,开闭原则是设计原则的核心
任务
耦合与内聚
衡量软件设计质量
首要标准
满足软件的功能需求
好的设计
可读性
可复用性
可扩展性
可维护性
高内聚 低耦合:是所有优秀软件的共同特征
一个类做的职责越单一,内聚度就越高
尽量使用抽象耦合去替代具体耦合,增加代码的灵活性
里氏替换原则
在项目中判断是否该继承而使用的原则,父类出现的地方子类一定可替换.如果父类的方法在子类中发生了畸变,或父类的方法在子类中不适用,则应该断开两个类的父子关系.继承有自身的缺点,父类的方法或属性子类无条件继承
依赖倒转原则
分层时低层设计接口或抽象类于高层进行绑定遵循的是依赖倒转原则,高层绑定的不是低层的实体,而是抽象,面向抽象编程,而不是面向具体编程
组合聚合原则
尽量使用组合而非继承来达到复用的目的,继承有自身非缺陷,只能单根继承所以不能使用继承方式达到多个类代码的重用
接口隔离原则
尽量定义小接口,避免定义大接口,使用专门的接口要比统一的接口好,不要让用户面对自己用不到的方法,便于组织和分工
迪米特法则
软件实体之间应该尽量减少交互,不要因为一个类的变化而导致另一个类的变化
单一职责原则
一个类只应该有一个 引起它变化的原因,不要让一个类有多个引起它变化的原因。换句话说,一个类应该和一个职责相关的业务。不要让一个类承担过多的原则
开闭原则
软件实体应该面向修改关闭,面向扩展开发.其实现的核心是抽象.将相同的部分抽象出来,便于代码的重用,将不同的代码也抽象出来,便于功能的扩展,开闭原则是设计原则的核心