作者LaPass (LaPass)
看板java
标题Re: [问题] 图形介面的设计模式
时间Thu May 17 12:47:37 2012
下面MyClass这些是我自己摸索出来的方法
我不确定有没有正规的教材去教这类东西
就是,使用interface去做一个显示讯息的介面
例如:
interface IAcetion<Tin>
{
void invoke(Tin tin);
}
然後,可以在功能运作或是计算的部分的class加个栏位
class MyClass
{
IAcetion<String> show;
......
}
在使用MyClass的时候,看你要把show放到建构子传进去
或用个setShow(IAcetion<String> show)放进去都可以
class OuterClass
{
MyClass myClass;
class Show implement IAcetion<String>
{
public void invoke(String tin)
{
//显示用的的程式码,例如System.out.println(tin);
}
}
public OuterClass()
{
myClass = new MyClass(new Show()); //把显示的方法设定进去
........
}
.......
}
之後,在MyClass的计算部分,计算完毕後,再去呼叫执行输出的部分
class MyClass
{
......
public void count()
{
String s = "计算完毕的结果";
show.invoke(s);
}
}
这样的好处是,可以把一个MyClass跟其他部分切割得很乾净
如果设计的够好的话,这个class可以从console模式搬到GUI、JSP、android
而且不用改任何一行程式
※ 引述《wbreeze (de)》之铭言:
: 小弟可以算是接触Java不久的新手,对於Java图形介面的开发有浓厚的兴趣,
: 以往也撰写过简单的Java GUI程式,
: 但对於程式的逻辑与图形的设计概念尚有疑惑,望版上有高手能出面解惑。
: 以下切入正题─
: case 1.
: ┌─────────────┐
: │class MyClass │
: │ │
: │ │
: │ │
: │ │
: │ │
: │ │
: └─────────────┘
: MyClass中直接让程式逻辑及GUI component交互作用(掺在一起做撒尿牛丸
: case 2.
: ┌──────────────┐
: │class OuterClass │
: │ │
: │ ┌─────────┐ │
: │ │class MyClass │ │
: │ │ │ │
: │ │ │ │
: │ │ │ │
: │ └─────────┘ │
: │ │
: └──────────────┘
: MyClass是整个程式的主要逻辑部分,而OuterClass负责将图形元件与逻辑的部分连结,
: 以便让元件呈现出对应的行为。
: 个人比较意向case 2的方法,如此可保持MyClass的可读性(维护性?),
: 但也会因此造成程式参数传递的复杂度(或者小弟功力不足才觉得很复杂 OTZ),
: 而且有时候也很难清楚的切割图形控制与程式逻辑的界线 ("゜Д゜)
: 板上是否有资深的大大可以提出一点看法供小弟参考,在此感谢大家。
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.16.65
1F:推 wbreeze:感谢 如此一来的确可以将图形呈现与运算切得很乾净! 05/17 14:02