导航:首页 > 编程语言 > java开闭原则实例

java开闭原则实例

发布时间:2021-12-05 02:19:24

java六大设计原则

1、单一职责原则

不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。

2、里氏替换原则(Liskov Substitution Principle)

里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。
里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。
LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。——
From Bai 网络

历史替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

3、依赖倒转原则(Dependence Inversion Principle)

这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

5、迪米特法则(最少知道原则)(Demeter Principle)

就是说:一个类对自己依赖的类知道的越少越好。也就是说无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。

6、合成复用原则(Composite Reuse Principle)

原则是尽量首先使用合成/聚合的方式,而不是使用继承。

Ⅱ Java中分别用抽象类和接口实现开闭原理的实验报告

开闭原则
Java web中开闭原则(OCP)是指软件实体应当对扩展开放,对修改版关闭。对扩展开放意味着模块的行为是可扩展的,权对于修改的封闭则是对模块的行为进行扩展时,不必改动模块的源代码或者二进制代码。
遵循开闭原则
开闭原则是一切设计原则的基础,它是判断面向对象设计是否正确的最基本的原理之一。它在软件可用性上,非常灵活。它可以通过不断的增加新的设计模块满足不断变化的新需求!并且,由于开闭原则规定对软件原来的模块不要修改,因此不用担心软件的稳定性。如果一个软件项目某些功能已经不符合要求了,我们可以重新开发,并且只需要将现有的功能替换掉。
实现开闭原则
实现开闭原则的核心之处在于“抽象”。由于软件项目中,需求更新频繁,这要求我们系统设计师在设计时,要区分哪些是变化的,哪些是不变。对于不变部分,我们可以把这些不变部分加以抽象成不变的接口,对于变化的部分,我们可以进行评估和分类,每一个可变的因素都单独进行封装。
至于开闭原则的具体抽象实现方面,可以通过Java的抽象类和接口去展现。对于软件系统的功能扩展,我们可以通过继承、重载或者委托等手段实现。

Ⅲ JAVA程序设计(开封原则) 求解(代码)

开闭原则结构图


代码:

public interface pay{

void wePay();

void aliPay();

void voucherPay();

void bankcardPay();

}


public class Patron implements pay{

private String name;

public void wePay(){//微信支付的逻辑}

public void aliPay(){//支付宝支付的逻辑}

public void voucherPay(){//代金券支付的逻辑}

public void bankcardPay(){//银行卡支付的逻辑}

}

Ⅳ java中的开闭原则讲的是什么意思

简而言之,对修改封闭,对具体的实现开放。例如Java里的接口设计。楼主还是去看看设计模式方面的书吧,Java程序员最喜欢拿设计模式来说事~

Ⅳ 求助一个开闭原则的JAVA小代码

public class TestFruit {

public static void main(String[] args) {

Fruit fruit;
fruit = Gardener.NewFruit("apple");
fruit.grow();
fruit.Flowering();
fruit.Fruiting();

fruit = Gardener.NewFruit("pear");
fruit.grow();
fruit.Flowering();
fruit.Fruiting();

}
}

interface Fruit {
void grow();

void Flowering();

void Fruiting();
}

class Apple implements Fruit {

public void Flowering() {
System.out.println("开花的是苹果");
}

public void Fruiting() {
System.out.println("结果的是苹果");
}

public void grow() {
System.out.println("种植的是苹果");
}

}

class Pear implements Fruit {

public void Flowering() {
System.out.println("开花的是梨");
}

public void Fruiting() {
System.out.println("结果的是梨");
}

public void grow() {
System.out.println("种植的是梨");
}

}

final class Gardener {

public static Fruit NewFruit(String fruitname) {
if (fruitname.equals("apple")) {
return new Apple();
} else if (fruitname.equals("pear")) {
return new Pear();
}
return null;
}

}

不知这样写是否正确。个人认为这应该是一个工厂模式吧。
所有类的实现都由工厂类(也就是园丁类)完成。
写的只是一个简单工厂模式。

通过抽象类及接口,规定了具体类的特征作为抽象层,相对稳定,不需更改,从而满足“对修改关闭”;而从抽象类导出的具体类可以改变系统的行为,从而满足“对扩展开放”。开闭原则在问题描述时就已经实现了。当然这只是对于客户端(也就是测试类)来说,测试类只需要提供要创建对象的描述,系统自动创建相应的对象。而对于工厂类并没有满足开闭原则。

Ⅵ JAVA的几个重要特点

一.简单性:

Java是纯面向对象语言,语法简单明了,易于掌握。

Java使用接口取代了多重继承,并且取消了指针,因为多重继承和指针会使程序变得复杂。

Java还会自动地收集内存垃圾,使得内存管理变得更为简单。

Java还提供了丰富的类库、API文档以及第三方开发包,还有大量Java的开源项目。

二.面向对象性:

面向对象性事Java语言的基础。

java语言提倡“万物皆对象”,语法中不能在类外面定义单独的数据和函数。

Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。

三.分布性:

Java的分布性包括:1.操作分布。2.数据分布

⑴操作分布:即在多个不同的主机上不知相关操作。

⑵数据分布:将数据分别存放在不同的主机上,这些主机是网络中的不同成员。

四.可移植性:

Java程序具有与体系结构无关的特性。

Java的类库也提供了针对不同平台的接口,所有这些类库也可以被移植。

五.安全性

Java语言删除了类C语言的指针和内存释放等语法,有效地避免了用户对内存的非法操作

Java程序代码要经过代码程序校验、指针校验等很多测试步骤才能够运行。所以未经允许的Java程序不能出现损害系统平台的行为。

Java可以编写出防病毒和防修改系统。

六.健壮性

Java会检查程序在编码和运行时的错误,并消除错误。

七.多线程性。

Java应用程序可以在同一时间并行执行多项任务。而且相应的同步机制可以保证不同线程能够正确地共享数据。

八.高性能性

Java编译后的字节码是在解释器中运行的,所以它的速度较多数交互式运用程序提高了很多。

九.动态性

Java可以动态调整库中方法和增加变量,并且客户端不需要任何更改。在Java中进行动态调整是非常简单和直接。

希望会给大家带来帮助!

Ⅶ Java,面对修改关闭,面对扩展开放

开闭原则
Java web中开闭原则(OCP)是指软件实体应当对扩展开放,对修改关闭。对扩展开放意味着模块的行为是可扩展的,对于修改的封闭则是对模块的行为进行扩展时,不必改动模块的源代码或者二进制代码。
遵循开闭原则
开闭原则是一切设计原则的基础,它是判断面向对象设计是否正确的最基本的原理之一。它在软件可用性上,非常灵活。它可以通过不断的增加新的设计模块满足不断变化的新需求!并且,由于开闭原则规定对软件原来的模块不要修改,因此不用担心软件的稳定性。如果一个软件项目某些功能已经不符合要求了,我们可以重新开发,并且只需要将现有的功能替换掉。
实现开闭原则
实现开闭原则的核心之处在于逗抽象地。由于软件项目中,需求更新频繁,这要求我们系统设计师在设计时,要区分哪些是变化的,哪些是不变。对于不变部分,我们可以把这些不变部分加以抽象成不变的接口,对于变化的部分,我们可以进行评估和分类,每一个可变的因素都单独进行封装。
至于开闭原则的具体抽象实现方面,可以通过Java的抽象类和接口去展现。对于软件系统的功能扩展,我们可以通过继承、重载或者委托等手段实现。

Ⅷ Java中的开闭原则是什么意思

开闭原则即封闭对原来代码的修改,开放对原来代码的扩展(如类的继承,接口的实现等)
开闭原则是一种设计思想,并不局限于java语言
大概意思就是这些,但是要真正掌握运用开闭原则,还是要多多实践,多多体会

Ⅸ 什么是开闭原则,java开闭原则

对扩张开放,对修改关闭 就是一个类中可以注入其他类对象,但是不能修改,因为修改了的话子类也变了 设计模式最基础的知识

Ⅹ 什么是开闭原则

开闭原则
即封闭对原来代码的修改,开放对原来代码的扩展(如类的继承,接口的实现等)
开闭原则是一种设计思想,并不局限于java语言
大概意思就是这些,但是要真正掌握运用开闭原则,还是要多多实践,多多体会

阅读全文

与java开闭原则实例相关的资料

热点内容
香港女同大尺度电影 浏览:812
txt肉文小说下载网站 浏览:164
护花野蛮人类似的小说有什么 浏览:189
易语言制作大数据表格 浏览:841
成龙演的双胞胎的电影叫什么名字 浏览:774
韩国理论电影免费中字 浏览:166
来回穿梭现代和抗战 浏览:395
头发全是蛇的女孩电影 浏览:318
linux下web服务器配置 浏览:38
吕良伟演的释迦牟尼什么电影 浏览:129
288tv 浏览:892
欧美电影视频在线网站 浏览:719
免费电影无需下载 浏览:110
惊变解说 浏览:743
免费看sf小说的网站 浏览:145
有小说 图片 视频的网站 浏览:124
360大数据中心副总裁 浏览:507
微信影院有哪些 浏览:824
男人不知道小电影的网址 浏览:978
noteexpress样式文件夹 浏览:854

友情链接