Java设计原则是什么 - 极悦
首页 课程 师资 教程 报名

Java设计原则是什么

  • 2021-10-14 10:03:11
  • 585次 极悦

Java设计原则是什么?

定义:简单地描述其作用

解决问题:说明该原则或设计模式解决什么限制条件下的问题。

结构图:绘制相关例子的UML机构图。

代码示例:通过一个例子解释该模式的实现方法。

优缺点:该模式的局限性。

Java设计原则是什么

单一职责原则(Single Responsibility Principle)

定义:

一个类只负责一个功能领域的职责;换句话说,就一个类而言,应该只有一个引起它变化的原因。

注意:

职责扩散是单一职责的挑战,应在其扩散到不可控制之前进行代码重构。

只有在逻辑足够简单或者方法数量足够少,才能够违反单一职责

单一职责的优点主要是:降低类的复杂度,提高类的可读性和可维护性。

开闭原则(Open-Closed Principle)

定义:

软件实体应该对扩展开放,对修改关闭。

注意:

抽象化设计是开闭原则的关键:用抽象类构架框架,用实现扩展细节。

其它原则和设计模式的整体概括,该原则是主要目标。

里氏代换原则(Liskov Substitution Principle)

定义:

所有引用基类(父类)的地方必需能够透明地使用子类对象。

注意:

将一个基类替换成其子类,程序不会产生任何错误和异常;反之则不成立。

里氏代换原则要求不能破坏继承体系,具体表现在:

子类应该实现父类的所有抽象方法,不要覆盖父类的非抽象方法。

子类可以增加自己特有的方法。

当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。

当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

依赖倒置原则(Dependency Inversion Principle)

定义:

抽象不依赖于细节,细节依赖于抽象,针对接口编程。

注意:

在程序代码中传递参数或者关联关系式,尽量引用高层的抽象层类。即:使用接口和抽象类进行变量生命、参数类型生命、方法返回类型生命以及数据类型的转换。

当一个对象和其它对象有依赖关系时,可以利用依赖注入的方法将类之间进行解耦。主要有三种:构造注入,Set方法和接口注入。

上述三个原则之间的关系:开闭是原则,里氏是基础,依赖倒置是手段。

接口隔离原则(Interface Segregation Principle)

定义:

使用多个专门的接口,而不是使用功能复杂的单一接口。

注意:

控制接口的粒度,接口不能太小,如果太小会导致系统中接口泛滥,不利于维护;接口也不能太大,太大的接口将违背接口隔离原则,灵活性较差,使用起来很不方便。

合成复用原则(Composite Resuse Principle)

定义:

又称为组合/聚合复用原则(Composition/Aggregate Reuse Pinciple),尽量使用对象组合,而不是继承来达到复用的目的。

注意:

组合/聚合可以降低类之间的耦合度,并且不会暴漏类的具体实现细节,称为“黑箱复用”;如果是使用继承机型复用,则会将实现细节暴漏给子类,破会系统的封闭性,如果基类变化,子类也随之变化,不具有灵活性,称为“白箱复用”。

一般来说,如果两个类之间是"Has-A"关系,则使用组合/聚合;如果是"Is-A"关系,则使用继承。

迪米特法则

定义:

一个软件实体应当尽可能少地与其它实体发生相互作用。

注意:

可以直接相互的作用包括:

当前对象本身,this。

以参数形式传入到当前对象方法中的对象。

当前对象的成员对象。

如果当前对象的成员对象是一个集合,那么集合中的元素也都可以直接访问。

当前对象创建的对象。

如果其它对象有相互耦合的情况,尽量采用第三者来降低耦合。

如果小伙伴对此比较感兴趣,想了解更多相关知识,不妨来关注一下极悦的面向对象设计原则,里面的内容详细,通俗易懂,适合初学者学习,希望对大家能够有所帮助。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交