引言
学习软件设计原则是学习设计模式的基础,为了在实际开发过程中,设计出更加优美的代码结构。
1、开闭原则
面向抽象编程,用抽象设计架构,用实现扩展细节;
对扩展开放,对修改关闭,降低维护带来的新风险;
软件架构的最基本设计原则,提高软件系统的可复用性和可维护性;
2、依赖倒置原则
面向接口编程,抽象不应该依赖细节,细节应该依赖抽象;
高层模块不应该依赖低层模块,而是都应该依赖其抽象;
依赖注入,为代码结构设计解耦,有利于代码结构的升级扩展;
3、单一职责原则
一个类只实现单一职责;
顶层设计完成之后,进行功能和职责的拆解;
有利于功能解耦,提高可维护性;
4、接口隔离原则
一个接口只实现单一职责;
高内聚、低耦合的设计思想,类与类的依赖建立在最小接口之上;
细化接口,建立单一接口,减少庞大臃肿的接口设计;
需要对业务模型有深入的理解;
5、迪米特原则
最少知道原则;
出现在成员变量,方法出参、入参的类可以产生关系,其他类之间,尽量不要产生关系;
降低类与类的耦合,减少代码臃肿;
6、里氏替换原则
为了约束继承泛滥,符合开闭原则(子类可以扩展父类,但不可以修改父类);
所有引用父类的地方,可以使用子类完美替换;子类可以实现父类所有抽象方法,但不可以覆盖父类的非抽象方法;
子类方法的入参要求不高于父类,子类方法的出参要求不低于父类;
7、合成复用原则
使用对象组合/聚合代替继承;
继承是白箱复用,对象组合/聚合是黑箱复用;
减少类与类的耦合;
总结
软件架构的设计原则,隔离、解耦,都是为了软件系统的稳定性和可维护性。