- 浏览: 468258 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
此去经年雪123:
为啥生成的是乱码 你好
关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名 -
alonglw:
zxf0089216 写道1.为什么每次都是10001RSAK ...
关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名 -
zxf0089216:
1.为什么每次都是10001RSAKeyPair(" ...
关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名 -
dunhanson:
后台的测试main方法都能加密解密。前台加密后的密文交给后台解 ...
关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名 -
map612:
wula0010 写道仔细看了下,可以运行RSAUtil.ma ...
关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名
Java 深入到一定程度 , 就不可避免的碰到設計模式 (design pattern) 這一概念 , 瞭解設計模式 , 將使自己對 java 中的介面或抽象類別應用有更深的理解。設計模式在 java 的中型系統中應用廣泛 , 遵循一定的編程模式 , 才能使自己的代碼便於理解 , 易於交流 ,Observer( 觀察者 ) 模式是比較常用的一個模式 , 尤其在介面設計中應用廣泛 , 而本站所關注的是 Java 在電子商務系統中應用 , 因此想從電子商務實例中分析 Observer 的應用。
雖然網上商店形式多樣 , 每個站點有自己的特色 , 但也有其一般的共性 , 單就 " 商品的變化 , 以便及時通知訂戶 " 這一點 , 是很多網上商店共有的模式 , 這一模式類似 Observer patern 。
具體的說 , 如果網上商店中商品在名稱 價格等方面有變化 , 如果系統能自動通知會員 , 將是網上商店區別傳統商店的一大特色。這就需要在商品 product 中加入 Observer 這樣角色 , 以便 product 細節發生變化時 ,Observer 能自動觀察到這種變化 , 並能進行及時的 update 或 notify 動作。
Java 的 API 還爲爲我們提供現成的 Observer 介面 Java.util.Observer 。我們只要直接使用它就可以。
我們必須
extends Java.util.Observer
才能真正使用它
:
1.
提供
Add/Delete observer
的方法
;
2.
提供通知
(notisfy)
所有
observer
的方法
;
//
産品類別
可供
Jsp
直接使用
UseBean
呼叫
該類別主要執行産品資料庫插入
更新
private String name;
public String getName(){ return name;} }
public float getPrice(){ return price;}
} } |
我們注意到
,
在
product
類別中
的
setXXX
方法中
,
我們設置了
notify(
通知
)
方法
,
當
Jsp
表單呼叫
setXXX(
如何呼叫見我的
另外一篇文章
),
實際上就觸發了
notisfyObservers
方法
,
這將通知相應觀察者應該採取行動了。
下面看看這些觀察者的代碼 , 他們究竟採取了什麽行動 :
//
觀察者
NameObserver
主要用來對産品名稱
(name)
進行觀察的
public class NameObserver implements Observer{ private String name=null;
public void update(Observable obj,Object arg){
name=(String)arg; } } } //
觀察者
PriceObserver
主要用來對産品價格
(price)
進行觀察的
private float price=0;
public void update(Observable obj,Object arg){
price=((Float)arg).floatValue(); } } } |
Jsp
中我們可以來正式執行這段觀察者程式
:
<jsp:useBean id="product" scope="session" class="Product" /> <jsp:setProperty name="product" property="*" /> <jsp:useBean id="nameobs" scope="session" class="NameObserver" /> <jsp:useBean id="priceobs" scope="session" class="PriceObserver" /> <% }else{ %>
//request.getRequestURI()
是産生本
jsp
的程式名
,
就是自己呼叫自己
<input type=hidden name="save" value="1"> </form> <% %>
|
執行改
Jsp
程式
,
會出現一個表單錄入介面
,
需要輸入産品名稱
産品價格
,
點按
Submit
後
,
還是執行該
jsp
的
if (request.getParameter("save")!=null)
之間的代碼。
由於這裏使用了資料
javabeans
的自動賦值概念
,
實際程式自動執行了
setName setPrice
語句。你會在伺服器控制臺中發現下面資訊
::
NameObserver :name changet to ?????(Jsp
表單中輸入的産品名稱
)
PriceObserver :price changet to ???(Jsp
表單中輸入的産品價格
);
這說明觀察者已經在行動了
.!!
同時你會在執行
jsp
的瀏覽器端得到資訊
:
産品資料變動
保存
!
並已經自動通知客戶
上文由於使用 jsp 概念 , 隱含很多自動動作 , 現將呼叫觀察者的 Java 代碼寫如下 :
public class Test { public static void main(String args[]){ Product product=new Product(); //
加入觀察者
product.setName("
橘子紅了
"); } }
|
你會在發現下面資訊
::
NameObserver :name changet to
橘子紅了
PriceObserver :price changet to 9.22
這說明觀察者在行動了 .!!
发表评论
-
设计模式之Factory
2009-10-23 16:52 842定义:提供创建对象的 ... -
設計模式之Prototype(原型)
2009-10-23 16:51 794定義: 用原型實例指定創建物件的種類,並且通過拷貝這 ... -
设计模式之Singleton(单态)
2009-10-23 16:51 745定义 : Singleton模式主要作用是保证在Jav ... -
設計模式之Builder
2009-10-23 16:50 775Builder 模式定義 : 將一個複雜物件 ... -
設計模式之Facade(外觀)
2009-10-23 16:50 850Facade 的定義 : 爲子系統中的一組 ... -
設計模式之Proxy(代理)
2009-10-23 16:49 1052理解並使用設計模式 , 能夠培養我們良好的面向物件編程 ... -
設計模式之Adapter(適配器)
2009-10-23 16:49 889定義 : 將兩個不相容的類別糾合在一起使用 ... -
設計模式之Composite(組合)
2009-10-23 16:48 824Composite 定義 : 將 ... -
設計模式之Decorator(油漆工)
2009-10-23 16:48 812Decorator常被翻譯成" ... -
設計模式之Bridge
2009-10-23 16:47 860Bridge定義 : 將抽象和行為劃分開來,各自獨立,但 ... -
設計模式之Template
2009-10-23 16:47 715Template 定義 : 定義一個操作中演算法 ... -
設計模式之Flyweight(享元)
2009-10-23 16:46 842Flyweight 定義 : 避免大量擁 ... -
設計模式之Memento(備忘機制)
2009-10-23 16:46 733Memento 定義 : memento 是一 ... -
設計模式之Command
2009-10-23 16:44 732Command 模式是最讓我疑惑的一個模式 , 我在 ... -
設計模式之Chain of Responsibility(職責鏈)
2009-10-23 16:43 829Chain of Responsibility 定義 ... -
設計模式之State
2009-10-23 16:43 769State 的定義 : 不同的狀態 , ... -
設計模式之Strategy(策略)
2009-10-23 16:42 750Strategy 是屬於設計模式中 物件行爲型模 ... -
設計模式之Mediator(仲介者)
2009-10-23 16:41 847Mediator 定義 : 用一個仲介物件來封裝 ... -
設計模式之Visitor
2009-10-23 16:40 952Visitor 定義 作用於某個物件群中各 ... -
設計模式之Interpreter(解釋器)
2009-10-23 16:40 761Interpreter 定義 : 定義語言的文法 ...
相关推荐
《设计模式之Observer》 设计模式是软件工程中的一种最佳实践,它们是在特定场景下解决常见问题的经验总结。Observer模式,又称为“观察者模式”或“发布-订阅模式”,是一种行为设计模式,用于在对象之间建立一种...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动编程或者...
Observer模式,也称为发布-订阅(Publish/Subscribe)模式,是一种行为设计模式,它允许对象在状态发生改变时通知其他对象,而无需显示地指定这些对象。在Java中,Observer模式通过`java.util.Observable`和`java....
Observer(观察者)模式是设计模式中的一种,常用于实现对象之间的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在这个场景中,我们将讨论如何在Java中应用Observer模式,特别...
设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、...
设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
Observer设计模式,也被称为“发布-订阅”(Publish-Subscribe)模式或“依赖倒置”模式,是软件设计中的一种行为模式。它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到...
本文实例讲述了C#设计模式之Observer观察者模式解决牛顿童鞋成绩问题。分享给大家供大家参考,具体如下: 一.理论定义 观察者模式 描述了 一种 一对多的关系。 当某一对象的状态发生改变时,其他对象会得到 改变的...
设计模式之 Observer(观察者) 介绍如何使用 Java API 提供的现成 Observer 设计模式之 Iterator(迭代器) 这个模式已经被整合入Java的Collection.在大多数场合下无需自己制造一个Iterator,只要将对象装入...
观察者模式(Observer)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式在C++中广泛应用,特别是在需要...
观察者模式,也被称为发布-订阅模式或事件驱动模式,是软件设计模式中的一种行为模式。这个模式的主要目的是在对象之间建立一种松散耦合的关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并...
观察者模式(Observer)是软件设计模式中的一种行为模式,其主要目的是在对象之间建立一种松散耦合的关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式广泛应用于事件驱动...
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在软件开发中广泛应用于事件驱动...
### 从Java类库看设计模式之Observer模式详解 #### 一、引言 在软件开发过程中,常常遇到需要在不同对象之间建立依赖关系的情况,其中一个对象的状态变化会影响到另一个对象的行为。这种需求可以用设计模式中的...
**C#面向对象设计模式纵横谈(19)**:**观察者模式**(Observer Pattern)是行为型模式的一种,它在软件工程中扮演着至关重要的角色。观察者模式是一种设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态...
观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在Java和C++等面向对象编程语言中,这种模式广泛用于事件处理和实时系统,...
在这个“设计模式之美”的学习笔记中,我们将探讨一些主要的设计模式,以及它们在实际开发中的应用。 首先,我们从创建型模式开始。这类模式主要用于对象的创建,如单例模式(Singleton)、工厂模式(Factory ...
本篇文章将深入探讨“Observer”观察者模式,这是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式的核心概念是主题...