看板java
标 题Re: [问题] 多个panel和ActionListener的问题
发信站SayYA 资讯站 (Sun Nov 26 08:25:48 2006)
转信站ptt!ctu-reader!news.nctu!SayYa
※ 引述《[email protected] (大家来用linux^^/)》之铭言:
> MVC?
> Where's your "MODEL" and "CONTROLLER"? (「m」V「c」)
> Please describe it, thanks.
MODEL --> CheckableData
Controller --> Listener can send message
to model do something.
====================================================================
文中的最後写了,稍为乎略了策略模式。
是因为如果直接把Listener的功能对应为Controller
所需要的功能,会使得程式必定要在GUI的情况才能跑
也就是说Controller与View产生了藕合,难以切割
比较能接受的例子大概就是Collections中的Comparator interface
Collections本身定义了一组存放东西的样版,
但是要如何比较这些东西的顺序,以及是否有需要比较
你可以决定是否要实作Comparator来为Collections加上比较的功能
CheckableData之中自己也定义了一些method,
但这些method主要是负责CheckableData必要的逻辑运算用的
如果为了迁就GUI而在base class加上去了一些额外的method
就会使得base class提供的功能过於"杂乱",
对於这样不一定要出现的method,定义一组配合GUI操作的
interface并实作之。
--
这只是其中一种Controller的"位置"
也有的作者完全不加东西在base class之中,
而是把他包起来,透过中间人去沟通model与view
--
※ Origin: SayYA 资讯站 <bbs.sayya.org>
◆ From: pc210-59-94-161.nutn.edu.tw