⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用什么模式或方法?.txt

📁 一些关于UML的经典讨论
💻 TXT
字号:
用什么模式或方法?

http://www.shecn.com/best/g18/g1033.htm

该怎么办??用什么模式或方法?

--------------------------------------------------------------------------------
我使用Observer 模式写了一段代码

public interface Chart {
public void update()
}

public class LineChart implements Chart{
public void update(){
//根据数据的改变重化图
}
}

public class UserAgent extends DefaultDatasource{
// 可以 用 Chart 的update 方法更新图。

}

public interface Datasource {
public void notify();
}

public DefaultDatasource implement Datasource {
public void notify(){};
}

public MyFrame extends JFrame{

UserAgent ua[];

}


我想实现在用户界面上选择某个 UserAgent 时 在LineChart上显示被选中的
哪个UserAgent 的当前状态。

请赐教!! 
 01/10/23 15:53 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 slovenboy   没人理我吗?再补充点儿》》》》

--------------------------------------------------------------------------------
我有同一类A多个实例,使用一个图(View)观察他们,但每次
只显示一个实例的内部状态,当我在实例间切换(如,在拥护界面上
选择不同的)图(View)应该反映当前实例的内部状态???

不只用什么模式好些???

恳请赐教。。。 
 01/10/23 22:17 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 muyq   一般是多个Observer订阅一个或者一组相对稳定的SUBJECT实例.

--------------------------------------------------------------------------------
象你要用一个observer观察多个SUBJECT实例的情况.
1、在observer中增加转换代码,每次更换subject实例事件发生时,执行要放弃subject实例的detach方法,触发新subject实例的attach方法。然后运行self.update()
2、改造subject类,分离界面和实现,参照你的应用需要,有许多模式可帮助设计这种subject类,在实例更换事件会指示subject界面动态装入相关实例,然后向它的observer发出update的通知。
在Observer模式中,只描述了observer和subject的关系,没有描述observer接收用户输入的职责,由谁能向subject发送setstate()消息触发变换,没有具体的要求,当然,你的observer可以接收用户的输入然后负责向它的subject发送setstate()消息,但这不在Observer模式描述的范围之内。相关更好的实现是MVC结构。 
 01/10/24 12:06 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 slovenboy  抱歉:一不小心把“酷贴”评价抵消了,谢谢,

--------------------------------------------------------------------------------
我用了类似的方法,但没有你写的这样清楚。

很感谢!!!

不知有没有办法删掉“臭贴”评价? 
 01/10/24 13:00 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 slovenboy   明白了,,能否介绍一些MVC的资料??

--------------------------------------------------------------------------------
我对MVC了解的不是很多,

不知那里可以找到资料,如果你有可否mail我一份。

slovenboy@263.net

谢谢。。 
 01/10/24 13:07 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 ooworld   一点儿看法

--------------------------------------------------------------------------------
是否可以考虑将“observer中增加转换代码”单独分离出来,因为这部分功能其实不是observer的功能,observer应该相对比较简单,不需要知道这种切换的情况。另外,在observer中添加切换代码也在Subjects和Observer之间加强了耦合,这和设计模式的初衷是违背的。

将转换部单独用一个ChangeManger实现,observer想ChangeManger注册,ChangeManager维护着Subjects的引用。这样才真正实现了Observer和Subjects之间的解耦。

不知可否。 
 01/10/24 13:08 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 ooworld   我来给它加个1

--------------------------------------------------------------------------------
 
 01/10/24 13:15 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 slovenboy   谢谢 ,, 呵呵。。。

--------------------------------------------------------------------------------
 
 01/10/24 13:17 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 slovenboy  回复: 一点儿看法>> 可能最后真的得这样。。

--------------------------------------------------------------------------------
我边学习边写程序,没有设计。

所以,现在觉得很乱,

我在每次更改subject时,调用subject的notify方法,
在notify方法中调用Observer的update(this)方法,
把Subject自己的引用传给Observer,在update 方法内
更改他维护 的subject 应用所指向的对象!

这应该是“observer中增加转换代码”吧!!

加个ChangeManager可能好多了!! 但不太理解ChangeManager.. 
 01/10/24 13:29 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 muyq   当然,可以演变成MVC模式。

--------------------------------------------------------------------------------
 
 01/10/24 13:43 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 muyq  好多地方有MVC结构介绍和论文

--------------------------------------------------------------------------------
MVC全名叫model-viewer-controller,是SMALLTALK语言首先提出来的应用架构,关于它的文章在图片共享里有它的结构图,在文件共享里有它的相关文章,还有其它的网络资源,不枚胜举,介绍一个我认为比较好的入门论文链接http://www.csis.pace.edu/~bergin/mvc/mvcgui.html
祝好运! 
 01/10/24 13:56 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 slovenboy  回复: 好多地方有MVC结构介绍和论文>> 感谢, 再研究

--------------------------------------------------------------------------------
 
 01/10/24 14:14 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 deborah.d  回复: 好多地方有MVC结构介绍和论文

--------------------------------------------------------------------------------
谢谢! 
 01/10/24 17:58 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 ooworld   其实这样我觉得挺好的,没有必要为模式而模式。

--------------------------------------------------------------------------------
ChangeManager专门用来管理与多个Subject连接的情况,处理Subject之间的切换,这样,可以在Subjects和Observer之间实现解耦,Observer只需向ChangeManager注册,而无需关心Subject的实现情况。这样比较符合简单的原则。

这样演变下去的话,其实就变成MVC了。 
 01/10/24 18:28 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 slovenboy   有点不明白????

--------------------------------------------------------------------------------
怎么就变成MVC 了呢??
你是说象如下的样子吗!!

M -> Subject
V -> Observer
C -> ChangeManager


是这样吗?? 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -