您的位置:首页 > 编程语言 > Java开发

Java设计模式——六大设计原则

2016-12-04 03:39 309 查看

1.单一职责原则

单一职责原则的定义是类的变更的原因应该只有一个,它提出用“职责”和“变化原因”来衡量接口或类设计得是否优良,但是这两个因素都是因项目而异因环境而异的,并没有一个量化的标准

单一职责原则使类的复杂性降低,实现什么职责都有清晰的定义,复杂性降低后可读性也就提高了,可读性提高也就更容易进行维护了。如果接口的单一职责做的好,一个接口修改只对相应的实现类有影响,对系统的扩展性和可维护性也有很大提高

除了类与接口之外,方法也同样需要使用单一职责原则,避免方法颗粒度太粗

类尽量做到单一原则,接口一定要做到单一原则

2.里氏替换原则

里氏替换原则定义:只要父类能出现的地方子类就可以出现,替换为子类也不会产生任何错误和异常,但是反过来却不行,有子类的地方父类未必能适应

里氏替换原则为良好的继承定义了规范

1.子类必须完全实现父类的方法,如果子类不能完整的实现父类的方法,建议断开继承,采用依赖,聚集,组合等关系代替继承

2.子类可以有自己的个性

3.覆盖或实现父类方法时参数可以被放大

4.覆写或实现父类方法时输出结果可以被缩小

3.依赖倒置原则

在Java中的表现是:

1.模块间的依赖通过抽象发生,实现类之间不存在直接的依赖关系,其依赖关系是通过接口或抽象类产生的。

2.接口或抽象类不依赖实现类

3.实现类依赖接口或抽象类

依赖的三种写法:

1.构造函数传递依赖对象

2.Setter方法传递依赖对象

3.接口声明传递依赖对象

依赖倒置需遵循规则:

1.每个类尽量都有接口或抽象类

2.变量的表面类型尽量是接口或抽像类

3.任何类都不应该从具体类派生

4.尽量不要覆写基类的方法

5.结合里氏替换原则使用

4.接口隔离原则

两种接口:

1.实例接口,例如:Person lisi = new Person()产生一个实例,这个实例要遵从的就是Person这个类,Person就是lisi的接口。

2.类接口,interface关键字定义的接口

接口隔离原则定义:建立单一接口,不要建立臃肿的接口

通过分散定义接口可以预防未来变更的扩散,提高系统灵活性和可维护性

接口隔离原则含义:

1.接口要尽量小,但不能违反单一职责原则

2.接口要高内聚,即减少对外交互,提高接口,类,模块处理能力

3.定制服务

4.接口设计是有限度的

5.迪米特法则

定义:一个对象应该对其他对象有最少的了解

含义:

1.一个方法尽量不引入一个类中不存在的对象JAVAAPI除外

2.尽量不要公布太多的public方法和非静态的public变量

3.如果一个方法放在本类中,既不增加类间的关系,也对本类不产生负面影响,那就放置在本类中

6.开闭原则

定义:软件实体应该对扩展开发,对修改关闭

开闭原则可以提高代码复用性,可维护性,并且符合面向对象开发的要求

如何使用开闭原则:

抽象约束:

1.通过接口或抽象类约束扩展,对扩展进行边界限定,不允许出现在接口或抽象类中没有的public方法

2.参数类型,引用对象尽量使用接口或抽象类,而非实现类

3.抽象层尽量保持稳定

元数据控制模块行为

制定项目章程

封装变化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息