Re: [問題] 多個panel和ActionListener的問題
※ 引述《H45.bbs@binary.csie.ncu.edu.tw (大家來用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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 5 之 6 篇):