以下是UML图(注:Obsever接口,Observable类是java.util包下文件):
源代码:Product
import java.util.Observable;
public class Product extends Observable{
private String nameString;
private double price;
public Product(String nameString, double price) {
super();
this.nameString = nameString;
this.price = price;
}
public void setNameString(String nameString) {
if(!this.nameString.equals(nameString)){
this.nameString = nameString;
setChanged();
}
//Observable的方法
notifyObservers(nameString);
}
public void setPrice(double price) {
if (this.price!=price) {
this.price = price;
setChanged();
}
notifyObservers(price);
}
}
NameObserver类:
import java.util.Observable;
import java.util.Observer;
public class NameObserver implements Observer {
public void update(Observable arg0, Object arg1) {
if (arg1 instanceof String) {
System.out.println("观察物" + arg0 + "的名称改为:" + arg1);
}
}
}
PriceObserver类:
import java.util.Observable;
import java.util.Observer;
public class PriceObserver implements Observer {
public void update(Observable arg0, Object arg1) {
if (arg1 instanceof Double) {
System.out.println("观察物"+arg0+"的价格变化为"+arg1);
}
}
}
Client类:
public class Client {
public static void main(String[] args) {
Product product = new Product("电脑", 2000);
PriceObserver priceObserver = new PriceObserver();
NameObserver nameObserver = new NameObserver();
product.addObserver(nameObserver);
product.addObserver(priceObserver);
product.setNameString("笔记本电脑");
product.setPrice(5000);
}
}
运行结果截图:
- 大小: 8.4 KB
- 大小: 14.4 KB
分享到:
相关推荐
总之,通过对ArgoUML源代码的深入学习,不仅可以理解UML工具的实现细节,还能掌握Java编程、图形界面设计、XML处理等多个方面的技术,是提升自身编程技能的宝贵资源。无论是初学者还是经验丰富的开发者,都能从中...
- **对象模式**:关注对象之间的交互,如观察者模式、迭代器模式。 - **行为模式**:描述系统的行为或控制流,如状态模式、策略模式。 - **构造型模式**:描述如何组合简单的元素形成复杂的系统结构,如组合模式...
【Java 实验:策略模式、观察者模式和组合模式】 实验目标主要集中在理解和应用三个设计模式:策略模式、观察者模式和组合模式。这三种模式是面向对象设计中常用且重要的设计模式,它们有助于提高代码的灵活性、可...
常见的设计模式有单例模式、工厂模式、观察者模式、策略模式等。例如,单例模式确保一个类只有一个实例,适用于管理共享资源;工厂模式提供创建对象的接口,但不直接实例化对象,增强了灵活性;观察者模式用于实现...
源代码和 UML 图展示了具体实现的细节,例如 `DrawShape` 类如何存储和绘制形状,以及各个形状类如何继承 `MyShape` 并实现相应的计算和绘图方法。 通过这个实验,学生可以深入理解并实践这些设计模式,增强软件...
实验环境包括PC微机、DOS或Windows操作系统以及Eclipse开发环境,源代码包括UML图、形状类、观察者类、组合模式的类以及MVC结构的相关组件。实验的目的是通过实践加深对这些设计模式的理解,并能运用到实际问题中。
在这个实验中,二维数组数据模型(Model)与用户界面(View)通过策略、观察者和组合模式进行交互。用户界面中的饼状图和柱状图是二维数组数据的可视化表示,当用户移动滑块改变数组值时,控制器(Controller)会...
【机房管理系统的源代码和功能图】 机房管理系统是一种专为数据中心或服务器机房设计的信息化管理软件,用于高效地监控、管理和维护机房内的设备及环境参数。本资源包含该系统的源代码和功能图,对于学习机房管理...
在本资源中,我们主要关注的是“东北大学软件体系与结构”的四次实验源代码,这些代码涵盖了设计模式的相关知识。设计模式是软件工程中的一种重要概念,它代表了在特定上下文中解决常见问题的最佳实践。通过学习和...
行为型模式如观察者(Observer)、模板方法(Template Method)和策略(Strategy),关注对象之间的交互和职责分配。 2. **设计模式的3W1H** - **What(是什么)**:设计模式是对在软件设计中反复出现的问题以及其...
### Java实验策略模式、观察者模式和组合模式详解 #### 一、实验目的与背景 本次实验旨在通过具体的编程实践,让参与者深入了解并掌握三种重要的设计模式:**策略模式**、**观察者模式**以及**组合模式**。通过...
第17章 风吹草动:观察者模式 (Observer) 第18章 变化多端:状态模式 (State) 第19章 明修栈道,暗度陈仓:策略模式 (Strategy) 第20章 循序渐进:职责链模式 (ChainofResponsibility) 第21章 独具匠心:命令模式 ...
通过分析这些源代码,我们可以深入理解J2EE中的Servlet、JSP、EJB(Enterprise JavaBeans)、JPA(Java Persistence API)以及Spring框架等核心组件的使用方法,同时也能了解到如何实现MVC(Model-View-Controller)...
18. **观察者模式**:定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 19. **状态模式**:允许一个对象在其内部状态改变时改变它的行为,看起来像改变了...
5. **软件设计与实现**:源代码中可能包含了软件设计模式的应用,如工厂模式、单例模式、观察者模式等,这些都是软件设计的重要理论基础。同时,还可以了解到如何在C#中实现复杂的图形用户界面(GUI)和数据交互逻辑...
对象图适用于论证类模型的设计以及对源代码进行分析和说明。其优点是能够直观理解出系统运行时的实时状态,缺点是比较复杂,工作量大。 UP(Unified Process)的阶段包括: 1. 初始:大体上的构想、业务案例、范围...
同时,设计模式的应用,如工厂模式、单例模式、观察者模式等,可以提高代码的复用性和灵活性。 此外,系统的数据库设计也是重要一环。这通常涉及到实体关系图(ER图),用于描述数据表之间的关系,以及表的字段定义...
6. **观察者模式**:观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态改变时,所有依赖于它的对象都会得到通知并自动更新。报告中会解释如何定义主题和观察者接口,以及如何实现订阅和发布机制。 7. **...
UML还支持面向对象的设计原则和模式,书籍可能会讨论如何利用UML来表达这些原则和模式,如单一职责原则、开闭原则、依赖倒置原则等,以及工厂模式、观察者模式、装饰器模式等常见设计模式的UML表示方法。 在编程...
本书将介绍一些经典的设计模式,如工厂模式、单例模式、观察者模式,并演示如何在ModelMaker中应用这些模式进行建模,从而更好地组织和实现DELPHI项目。 最后,《MM(ModelMaker)两小时上手指南》是一份快速入门教程...