对可能需要修改的方法开放
来源:互联网 发布:世界人工智能专业排名 编辑:程序博客网 时间:2024/05/22 03:59
// 按照色温排序
public void sort_1() {
for (int i = 0; i < mCurrent; i++) {
for (int j = 0; j < mCurrent - i - 1; j++) {
if (this.lights[j].getCt() < this.lights[j + 1].getCt()) {
Light temp = this.lights[j];
this.lights[j] = this.lights[j + 1];
this.lights[j + 1] = temp;
}
}
}
}
如上程序,当需要按照Ct排序时则需要增加方法。但是这样做比较麻烦,有一种更为简便的方法
public void sort(Compareable compareable) {
for (int i = 0; i < mCurrent; i++) {
for (int j = 0; j < mCurrent - i - 1; j++) {
if (compareable.compare(lights[j], lights[j+1])<0) {
Light temp = this.lights[j];
this.lights[j] = this.lights[j + 1];
this.lights[j + 1] = temp;
}
}
}
}
将可能修改的方法抽象成一个借口
public interface Compareable {
public int compare(Light l1, Light l2);
}
当需要改变时
public class CtCompareable implements Compareable{
@Override
public int compare(Light l1, Light l2) {
return l1.getCt() - l2.getCt();
}
}
需要使用时
Compareable c = new CtCompareable();
XXX.sort(c);
多态性,根据c的不同选择不同的类。
- 对可能需要修改的方法开放
- 淘宝开放平台Java版Demo,可能需要常用的网址,一些基本的参数说明
- 淘宝开放平台Java版Demo,可能需要常用的网址,一些基本的参数说明
- 对扩展开放_对修改封闭
- 整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!
- 整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!
- 可能需要的网站
- SYstem 可能需要的*
- 反病毒可能需要用到的方法及操作
- android修改开放类方法
- 对MySQL开放远程连接权限的方法
- CentOs开放需要的端口
- JAVA中开闭原则-----对扩展开放, 对修改关闭。以及接口隔离原则的强大
- B/S系统中的事件订阅 事件的好处~实现对修改的封闭,对扩展的开放
- glusterfs 环境需要开放的端口
- 开放Java Servlet需要的Jar包
- CentOs开放自己需要的端口
- CentOs开放自己需要的端口
- c# Ftp协议Socket实现
- c++设计模式--解释器模式
- iOS开发复选框类库SSCheckBoxView
- 使用Memory Analyzer tool(MAT)分析内存泄漏(二)
- Eclipse 3.0插件集锦
- 对可能需要修改的方法开放
- jdk 工具命令总结
- windows 7sdk各个版本含义
- (图解)情景化知识管理 --- 第三代知识管理典型实践
- ios 常用第三方类库
- SQL中用新数据填充表
- Dell服务器各种RAID卡介绍及监控方法
- Html 标签使用
- 黑马程序员Java高新__泛型