设计模式:代码重用性,可读性,可扩展性,可靠性,高内聚,低耦合
单一职责原则:
对于类来讲,一个类只负责一项职责
例子:例如一个UseDAO对应一个实体user,不对应实体order
注意:
降低代码的负责度,一个类只负责一项原则
提高类的可读性,可维护性
降低变更引起的风险
通常情况下,需要遵循单一职责原则,只有类中方法数量足够少,可以在方法即便保持单一职责原则
接口隔离原则:
客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的连接,
例子:
一个接口中存在1,2,3,4,5 5个接口,但是不同的类需要不同的方法,把这个接口拆了拆成多个,不同的类分别继承
依赖倒装(倒置)原则:
概念:
高层模块不应该依赖于底层模块,二者都应该依赖其抽象;
抽象不应该依赖于细节,细节应该依赖于抽象;
依赖倒转的中心思想是面向接口编程
设计理念:
相对于细节的多变性,抽象的东西要稳定的多,以抽象为基础搭建的架构要比以细节为基础搭建的架构稳定的多。
使用接口或抽象类的目的是制定好规范,不涉及任何具体操作,把展现细节的任务交给他们的实现类去完成
注意细节:
底层模块尽量都要有抽象类或者接口(A为子类,最好继承,实现父类)或者两者都有,稳定性好
变量的声明类型尽量是抽象类或者接口,这样我们的变量引用和实际对象间,存在缓冲层,有利于程序扩展和优化
继承时遵循里氏替换原则
依赖关系传递的三种方式
接口传递(简单),构造方法传递,setter方式传递
里氏替换原则:
继承的思考和说明:
继承包含一种含义:父类已经实现的方法,虽然不强制要求所有的子类必须遵循,但是子类如果对已经实现的方法任意修改,可能会导致继承体系崩溃。
继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象的耦合性,修改父类时,必须考虑到子类
基本介绍
引用基类的地方必须透明的使用其子类对象;
原本B继承A,现在把B拆出来,新加一个base类,B继承base,A继承base
子类尽量不要重写父类的方法
开闭(OCP)原则:
扩展而不是修改,对扩展开放,对修改关闭,加功能:增加代码不是修改
迪米特法则:(最少知道原则)
合成服用原则: