首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

Observer设计方式【利用商品概念解释】

2013-09-06 
Observer设计模式【利用商品概念解释】每个人都想过着富有的生活,这是很正常的。这里以开店进货为例。在讲之前

Observer设计模式【利用商品概念解释】

每个人都想过着富有的生活,这是很正常的。

这里以开店进货为例。

在讲之前解释英语单词:

Observer:查看;遵守

Observable:可见的,公开的。

从单词可以知道:商品用来卖,所以公开,继承【extends】了商品的基本属性[Observable].

对于商品,监管部门要对它实行【implements】监管,让其符合相关法律法规

package patterns.actions.observer;import java.util.Observable;/** * 商品要放在柜台上卖,那么它就要接收各种部门检查 *这里设置:知识产权 和  物价部门 * @author one * */public class ProductObservable extends Observable { public static String productName;public static Float price;public String getProductName() {return productName;}/* * 商品名称 有时需要更新 * */public void setProductName(String productName) {this.productName = productName;//让知识产权管理部门看看super.setChanged();super.notifyObservers(this.productName);}public Float getPrice() {return price;}/* * 商品的价格也是要更新 * @param price */public void setPrice(Float price) {this.price = price;//让物价局来看看super.setChanged();super.notifyObservers(this.price);}}
package patterns.actions.observer;import java.util.Observable;import java.util.Observer;public class PriceObserver implements Observer {//物价局@Overridepublic void update(Observable o, Object arg) {if(arg==ProductObservable.price){ProductObservable  myProduct =(ProductObservable) o;System.out.println("PriceObserver price changed to "+myProduct.getPrice());}} }



 

package patterns.actions.observer;import java.util.Observable;import java.util.Observer;public class NameObserver implements Observer {//知识产权部门只关心商标名称的改变@Overridepublic void update(Observable o, Object arg) {if(arg==ProductObservable.productName){ProductObservable myProduct=(ProductObservable) o; System.out.println("NameObserver  name changed to "+myProduct.getProductName());} } }


开店的基本过程设置好了,那么就开店吧。

package patterns.actions.observer;/** * 开店了 * @author one * */public class Test { public static void main(String[] args) {//商店来了一批商品ProductObservable product=new ProductObservable();//在上架之前,要经过部门审查,要有执照才能用。product.addObserver(new NameObserver());product.addObserver(new PriceObserver());//好了,拿到商品销售执照,可以上架了。product.setPrice(100.0f);product.setProductName("Beer");}}


商品上架符合规则,所以监管部门都通过了,得出结果为:

PriceObserver price changed to 100.0NameObserver  name changed to Beer


好了,其实有时写程序,所谓的架构,也是来源于生活。

 

热点排行