1、接口分离原则
客户端不应该依赖它不需要的接口。
一个类对另一个类的依赖应该建立在最小接口上。
接口尽量细分,不要在一个接口中放很多方法。
单—职责原则强调的是职责的划分
接口隔离原则,强调的是接口的设计,但是,接口在设计的时候,应该也得首先满足单一职责原则
2、合成复用原则
尽量使用对象组合,而不是继承来达到复用。
合成复用原则是将已有的对象纳入到新对象中,作为新对象的对象成员来实现的,新对象可以调用已有对象的功能,从而达到复用。
3、迪米特原则
只和直接朋友通信
4、继承的缺陷
破坏了系统的封装性,基类发生了改变,子类的实现也会发生改变。
子类如果不需要多余的方法,则系统耦合性变高。
继承是静态的,不能在程序运行时发生改变。
5、类于类之间的关系
泛化:父类是子类的泛化,子类是父类的特化
实现:类与接口的关系,表示类实现了接口。
组合:组合是整体和部分的关系,部分没有独立的生命周期,组合是把部分作为整体类的对象
聚合:聚合也是整体与部分的关系,但是个体有独立的生命周期,聚合是把个体对象的指针(引用)作为整体类的属性
关联:关联是一种拥有关系,它使一个类知道另一个类的属性和方法。
依赖:依赖是一种使用关系
6、设计原则
设计原则是「高内聚、低耦合」的具体落地。
单一职责原则要求在软件系统开发、设计中,一个类只负责一个功能领域的相关职责。
开放封闭原则要求一个软件应该对扩展开放,对修改封闭,即在不修改源代码的情况下,完成系统功能的扩展。
里式替换原则决定了子类可以赋值给父类。
依赖倒置原则要求抽象不应该依赖于细节,细节应该依赖于抽象。要面向接口编程,不要面向实现编程。
迪米特原则要求一个对象尽可能少的与其他对象发生相互作用。
接口隔离原则要求客户端不应该依赖那些他不需要的接口,即将一些大的接口细化成一些小的接口供客户端使用。
合成复用原则要求我们尽量使用对象的组合,而非继承来达到复用的目标。
7、设计模式
1.单例设计模式:饿汉式,懒汉式(不安全)
2.简单工程设计模式
一个工厂类,一个产品抽象类,工厂类创建方法依据传入参数并判断,选择创建具体产品对象。
3.工程方法设计模式
多个工厂类,一个产品抽象类,一个产品抽象类,利用多态创建不同的产品对象,避免了大量的switch-case判断。
4.抽象工厂设计模式
多个工厂类,多个产品抽象类,产品子类分组,同一个工厂实现类创建同组中的不同产品,减少了工厂子类的数量。