我们在进行程序代码编写时,为了让代码具有可扩展、可维护性、解耦的特点,需要从几个原则出发。下面就我所了解的六大原则进行阐述。
开闭原则
对扩展开放,对修改关闭。
在软件开发过程中,当需求发生变更时,可通过软件功能的扩展来实现需求的变更,而不是去修改里面的代码。
单一职责
一个类或一个方法,只干一件事,只承担一个责任。
里氏替换原则
子类可以扩展父类的功能,但不能覆盖父类原有的功能。
包括的含义:
子类可以有自己的方法,除了新增加的方法外,尽量不要重写父类的方法。
依赖倒置原则
高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
其核心思想是:要面向接口编程,不要面向实现编程。是实现开闭原则的重要途经之一,降低了客户与实现模块的耦合。
方法:面向接口来实现编程
1,两个类尽量提供接口或抽象,或者两个都具备
2,变量的声明类型尽量是接口或者是抽象类。
3,任何类都不应该从具体类派生。
4,使用继承时尽量遵循里氏替换原则。
接口隔离原则
要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。
接口隔离原则和单一职责都是为了提高类的内聚性、降低它们之间的耦合性,体现了封装的思想,但两者是不同的:
- 单一职责原则注重的是职责,而接口隔离原则注重的是对接口依赖的隔离。
- 单一职责原则主要是约束类,它针对的是程序中的实现和细节;接口隔离原则主要约束接口,主要针对抽象和程序整体框架的构建。
迪米特法则
又叫最少知识原则
定义:只与你的直接朋友交谈,不跟“陌生人”说话。其含义:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。
个人总结
1,所有的的设计模式原则,都是相互组合使用的。
2,业务和设计跟你所以,在这过程中,对业务的理解会影响设计的好坏,设计的好坏决定着后续业务的扩展。扩展的同时还要遵守设计的6大原则,遵守原则的前提是要理解设计模式,可能理解了设计模式,发现都是组合使用的。都是互相影响,互相作用的。