Ⅰ 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语言
大概意思就是这些,但是要真正掌握运用开闭原则,还是要多多实践,多多体会