java设计模式-开闭原则
来源:互联网 发布:mac下做windows启动盘 编辑:程序博客网 时间:2024/06/05 06:32
开闭原则:一个软件实体应当对扩展开放,对修改关闭。实际的意思就是一个软件实体,能扩展新的需求。对抽象层次(java中包含接口)不能修改。
优点: 可复用性、可扩展性好。
如何能够实现开闭原则:主要存在对不变进行封装,对变化的进行扩展。
例子:
public class Apple{
//苹果有营养的
public boolean isNutrition=true;
//苹果是有大小
public int big=0;
//苹果是有重量的
public int weight=0;
//苹果是能生吃的
public void eat{
//write your code;
}
//苹果是圆圆的
public String shape="circular";
}
/***这一整个都是水果的特点。这样写下来当然这个类是没有问题的。
但是,当系统需要加上梨子、草莓等等。整个就没有扩展性。只能重复的写类。
这时就可以对整个水果进行抽象。将共同的属性进行抽象出来作为fruit水果抽象类
** /
public class Fruit{
//水果有营养的
public boolean isNutrition=true;
//水果是有大小
public int big=0;
//水果是有重量的
public int weight=0;
//水果是能生吃的
public void eat(){
//write your code;
}
}
//苹果做继承则为
public class Apple extends Fruit{
//苹果是圆圆的
public String shape="circular";
}
//梨子
public class Pear extends Fruit(){
public String shape="ellipsoid";
}
//整个看起来比较简洁。如果再存在梨子、荔枝、草莓都是同样的做继承
从上面我们封装了fruit各种水果共同属性(当然写的不一定对),对变化的属性形状(可变的属性)
放在继承的类里面。扩展性比较好。当然个人觉得最主要的是如果在一个类里面调用进行替换。
public class Test{
public Test(Apple apple){
}
}
public class Test2{
public Test2(Fruit fruit){
}
}
我们可以 new Test2(new Apple())、 new Test2(new Pear())的方式调用,而不需要修改Test2类,只需要继承
Fruit就可以了。如果是Test这种方式写,则我们需要对每种水果进行创建一个TestN的类。
所以开闭原则主要是对不变的进行封装、对变化的进行扩展。
- java设计模式-开闭原则
- java设计模式-开闭原则
- 设计模式开闭原则
- 设计模式--开闭原则
- 设计模式--开闭原则
- 设计模式---->开闭原则
- 设计模式--开闭原则
- 设计模式:开闭原则
- 设计模式开闭原则
- 设计模式--开闭原则
- Java设计模式-26-开闭原则
- java设计原则---开闭原则
- java设计模式六大原则(6):开闭原则
- java设计模式六大原则(6):开闭原则
- 设计模式之开闭原则
- 解读设计模式--开闭原则
- 【设计模式】之开闭原则
- 设计模式中的开闭原则
- 使用基于MFC的图形显示控件CTLChart编写的小软件
- 解决:BT5 /pentest/misc/openvas/openvas-check-setup.sh: No such file or directory
- 走进windows编程的世界-----消息处理函数(4)
- int 0x13中断的参数传递
- oracle110g rac升级前备份
- java设计模式-开闭原则
- Block 语法
- 上:上某个网站,单独一个字时控制微我向上10px,后面加数字时控制微我向上多少像素 20140708
- 基本数据类型和字符串的相互转换
- 内存管理初级
- ACM课件(lecture_06)并查集 学习笔记<三> --拓扑排序
- relocation truncated to fit: R_X86_64_32
- ADO判断数据库中字段值为NULL
- 装完Ubuntu后