- 浏览: 563296 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (350)
- Sybase (30)
- SQL SERVER2005 (14)
- 数据库 (27)
- SSH框架 (27)
- WebService (21)
- 下载-软件收藏 (15)
- 随笔-日常使用 (9)
- Flex 相关 (13)
- Linux (11)
- Web (64)
- XML相关 (9)
- Socket相关 (1)
- Elipse (3)
- 统计报表 (11)
- 线程相关 (3)
- Java相关 (37)
- JAVASCRIPT (19)
- JAVA反射 (3)
- JSP标签 (3)
- 随笔-其他 (2)
- 随笔-设计模式 (3)
- 随笔-架构师相关 (1)
- 下载-源码 (7)
- 下载-帮助文档 (1)
- 下载-插件 (6)
- 技术-.NET (2)
- 技术-Excel VBA (8)
- 应用-地图相关 (2)
- 应用-GSM短信猫 (5)
- 应用-单点登录 (3)
- Android相关 (3)
最新评论
-
sucheng2016:
发现jconn4.jar 里面有getBlob(String) ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
sucheng2016:
java.lang.UnsupportedOperationE ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
ok123zxx:
没下文了吗
通过 Tomcat Advanced I/O 获得高性能的 Ajax tocmat6+CometProcessor -
q1345111:
大家这个问题 尚未完成方法 com.sybase.jdbc3. ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
bdk82924:
heshujing217187 写道问题同1楼一样,求解!换j ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver
如有这么一个需求
平台中需要实现一个统一管理的功能
实现方式1:
平台中定义类 CommonQuery.java ,且有Map<key,Object> 如 put(1,new Query1())
个子类都注册 CommonQuery
在平台中执行的时候 ,会根据Map的值遍历 ,然后调用个子系统的方法
实现方式2:
采用观察者模式
示例代码如下:
QueryMain.java
AbsQuery.java
Query01.java
Query02.java
Test.java
平台中需要实现一个统一管理的功能
实现方式1:
平台中定义类 CommonQuery.java ,且有Map<key,Object> 如 put(1,new Query1())
个子类都注册 CommonQuery
在平台中执行的时候 ,会根据Map的值遍历 ,然后调用个子系统的方法
实现方式2:
采用观察者模式
示例代码如下:
QueryMain.java
package test02; import java.util.ArrayList; import java.util.List; import java.util.Observable; public class QueryMain extends Observable { private static QueryMain instance; public static QueryMain getInstance() { if (instance == null) { instance = new QueryMain(); } return instance; } private QueryMain() { } private String starTime; /** * 查询的结果 */ private List<String> listAll = new ArrayList<String>(); /** * * 查询的参数 * * @param startTime * @author * @date 2013-1-11 上午06:14:20 */ public void doQuery(String startTime) { this.starTime = startTime; this.listAll = new ArrayList<String>(); this.setChanged(); this.notifyObservers(); } /** * @return the starTime */ public String getStarTime() { return starTime; } /** * @param starTime * the starTime to set */ public void setStarTime(String starTime) { this.starTime = starTime; } /** * @return the listAll */ public List<String> getListAll() { return listAll; } /** * @param listAll * the listAll to set */ public void setListAll(List<String> listAll) { this.listAll = listAll; } }
AbsQuery.java
package test02; import java.util.Observable; import java.util.Observer; public abstract class AbsQuery extends Observable implements Observer { @Override public void update(Observable o, Object arg) { doQuery((QueryMain) o); } public abstract void doQuery(QueryMain queryMain); }
Query01.java
package test02; public class Query01 extends AbsQuery { @Override public void doQuery(QueryMain queryMain) { // System.out.println("Query01 doQuery :" + queryMain.getStarTime()); queryMain.getListAll().add("Query01....1"); queryMain.getListAll().add("Query01....2"); queryMain.getListAll().add("Query01....3"); } }
Query02.java
package test02; public class Query02 extends AbsQuery { @Override public void doQuery(QueryMain queryMain) { // System.out.println("Query02 doQuery :" + queryMain.getStarTime()); queryMain.getListAll().add("Query02....1"); queryMain.getListAll().add("Query02....2"); queryMain.getListAll().add("Query02....3"); } }
Test.java
package test02; public class Test { public static void main(String[] args) { QueryMain queryMain = QueryMain.getInstance(); Query01 query01 = new Query01(); Query02 query02 = new Query02(); queryMain.addObserver(query01); queryMain.addObserver(query02); QueryMain.getInstance().doQuery("2013"); System.out.println("-------------"); for (String s : queryMain.getListAll()) { System.out.println(s); } QueryMain.getInstance().doQuery("2014"); System.out.println("-------------"); for (String s : queryMain.getListAll()) { System.out.println(s); } } }
发表评论
-
Docker 开源的应用容器引擎
2015-05-17 21:15 803Docker 是一个开源的应用容器引擎,让开发者可以打包他们 ... -
Ext Textfield框必填项 *号
2014-03-10 16:59 2660方法1:在items中加*号 var shortNam ... -
Struts2中查看Action配置的插件 -- Config Browser Plugin
2014-03-06 09:38 962(摘自官方介绍: http://struts.apache.o ... -
基于Spring的Rest服务中乱码问题
2013-12-10 18:45 15605Spring搭建的Rest服务端 在使用客户端调用Rest ... -
tomcat 报 “too many open files Too many open files" 问题的解决思路
2013-11-03 01:43 1616转:http://blog.csdn.net/big1980/ ... -
jsp的合并单元格
2013-05-27 08:59 1564合并单元格 <!DOCTYPE HTML PUBL ... -
tomcat 启动报错,日志不全如何检查
2013-04-10 15:30 1953有的时候由于某个配置错误,导致tomcat启动失败,但是呢日志 ... -
通过 Tomcat Advanced I/O 获得高性能的 Ajax tocmat6+CometProcessor
2013-03-20 16:02 2965最近项目上有个需求用到了Tomcat的后台推送技术,采用了非阻 ... -
表头固定表格jquery.chromatable
2013-03-09 14:08 1372直接上图吧 -
Spring MVC的使用
2013-02-07 15:42 830以前一直使用Struct2的MVC框架,感觉挺好用的,也 ... -
转 TortoiseSVN中分支和合并实践
2013-01-31 11:13 863转 TortoiseSVN中分支和合并实践 http://p ... -
Git的使用
2013-01-31 09:24 1758版本控制 从最早使用vs ... -
管理JDBC连接池jar包c3p0
2013-01-29 11:45 1550com.mchange.v2.c3p0.ComboPooled ... -
DbUtils的使用
2013-01-28 19:56 1250DbUtils的使用 今天在看一段源码的时候,看到了可以使用 ... -
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver
2013-01-28 19:48 13274com.sybase.jdbc3.jdbc.SybDriver ... -
Apache+tomcat配置集群
2013-01-22 19:30 1008直接上图 下载 http://download.cs ... -
Apache + Tomcat 配置多个应用
2013-01-22 19:05 1144今天在网上发现一篇帖子 ,Apache + Tomcat 配置 ... -
RSS的读取和发布
2013-01-22 15:53 1709这几天研究了RSS RSS(简易信息聚合,也叫聚合内容)是 ... -
短网址的原理和实现
2013-01-22 15:36 15364微博上经常会看到类似 http://t.cn/Afafhe 这 ... -
Tomcat7.0下实现的websocket 代码
2013-01-07 19:37 985测试环境: JDK1.6 Tomcat7.0.30 ...
相关推荐
观察者模式是一种软件设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在处理事件驱动和实时信息更新的系统中非常常见,如股票市场的...
观察者模式是一种行为设计模式,用于定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。实验中,学校信息发布的实现就是观察者模式的实例。定义一个`Notice`...
观察者模式定义了一种一对多的依赖关系,当一个对象(主题)的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。例如,在教学场景中,班长作为观察者,当老师到来时通知所有同学。这一模式包含两个主要...
2. **观察者模式**:观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,`java.util.Observable`和`java.util....
- 观察者模式(Observer):定义对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 - 状态模式(State):允许一个对象在其内部状态改变时改变它的行为,对象看...
- 观察者模式(Observer):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 - 状态模式(State):允许对象在其内部状态改变时改变其行为,对象看...
抽象工厂模式为一个产品族提供统一的接口,让客户端可以无须关心具体的产品实现,只关注于产品的使用。在Python中,通常通过接口定义和具体实现类来构建抽象工厂。 4. **建造者模式(Builder)**: 建造者模式将...
在园里有许多牛人都已经写过这些文章,不过大多的例子都是.NET,今天我要举一个JS的使用实例.有兴趣的朋友可以先了解一下一些牛人的,比如李会军大哥设计模式篇中观察者的那一节 ...
观察者模式是一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。代理模式则为其他对象提供一种代理以控制对这个对象的访问,它可以用于...
5. **观察者模式**:观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式广泛应用于事件驱动编程,例如GUI组件间的交互。 6. **装饰器...
4. 观察者模式:观察者模式是一种行为设计模式,它定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。Java中提供了java.util.Observable和java.util.Observer...
观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一种...同样,观察者也不必了解被观察者的具体实现,只需实现一个统一的更新接口即可。这种模式使得系统更加灵活,易于扩展,能够更好地应对需求变化。
- 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 - 责任链模式:避免请求的发送者和接收者之间的耦合,将请求封装为一个对象,沿着...
Java模式例子是一个深入探讨Java编程中设计模式应用的资源集合,它包含了一系列关于设计模式的实践示例。设计模式是软件工程中经过时间考验、在特定情境下解决常见问题的有效解决方案模板,它们代表了在软件设计过程...
17. 观察者模式:定义对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 18. 迭代器模式:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 19. 中介...
**单例模式**是一种保证一个类只有一个实例的设计模式。在上述实验中,通过创建`AppConfig`类来处理配置文件,单例模式的应用确保了在整个程序运行过程中,无论多少次调用,都只会有一个`AppConfig`实例。这样避免了...
- 观察者模式:定义对象间的一对多依赖关系,当一个对象的状态改变时,所有依赖于它的对象都会得到通知并自动更新。 - 迭代子模式:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 - 责任链模式:...
C#中的`System.ComponentModel.INotifyPropertyChanged`接口就是观察者模式的一个应用。 4. 适配器模式:将不兼容的接口转换为客户期望的接口,使得原本由于接口不兼容而不能一起工作的那些类可以协同工作。在C#中...
"Observer"模式是其中的一种行为设计模式,它定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在这个"Observer例子"中,我们将探讨如何在实际编程中应用...
- 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 - 状态模式:允许对象在其内部状态改变时改变它的行为,看起来好像对象改变了它的...