2007-01-17
设计模式之模版方法Template Method Pattern
关键字: 实际处理交给子类Template Method Pattern,父类指定处理大纲,子类规定具体内容的设计模式叫做模版方法模式。
下面的示例是反复输出5次同一个字符或字符串。
| 名称 | 说明 |
| AbstractDisplay | 只是现方法display的抽象类 |
| CharDisplay | 实现方法open,print,close的类 |
| StringDisplay | 实现方法open,print,close的类 |
| Main | 测试类 |
AbstractDisplay 抽象类
- public abstract class AbstractDisplay {
- public abstract void open();
- public abstract void print();
- public abstract void close();
- public final void display() {
- open();
- for( int i=0;i<5;i++)
- { print(); }
- close();
- }
- }
CharDispaly类
- public class CharDisplay extends AbstractDisplay {
- private char ch;
- public CharDisplay(char ch) {
- this.ch = ch;
- }
- public void open() {
- System.out.print("××");
- }
- public void print() {
- System.out.print(ch);
- }
- public void close() {
- System.out.print("××");
- }
- }
StringDispaly 类
- public class StringDisplay extends AbstractDisplay { //他也是AbstractDisplay的子类
- private String string;
- private int width;
- public StringDisplay(String string) {
- this.string = string;
- this.width = string.getBytes().length; }
- public void open() {
- printLine(); //此方法画线段
- }
- public void print() {
- System.out.print("|"+string+"|");
- }
- public void close() {
- printLine(); }
- private void printLine() {
- System.out.print("+");
- for(int i = 0 ;i < width ; i++) {
- System.out.print("--");
- }
- System.out.println("+");
- } }
Main测试类
- public class Main {
- public static void main(String[] args) {
- AbstractDisplay d1 = new CharDisplay('H');
- AbstractDisplay d2 = new StringDisplay("Hello,World!");
- d1.display();
- d2.display();
- }
- }
评论
qingzi2534
2007-01-17
java.io.InputStream 类用到了这个模式。
可以看看源码,加深理解本模式。
可以看看源码,加深理解本模式。
qingzi2534
2007-01-17
输出的结果是:
××HHHHH××
+------------+
|Hello,world!|
|Hello,world!|
|Hello,world!|
|Hello,world!|
|Hello,world!|
+------------+
××HHHHH××
+------------+
|Hello,world!|
|Hello,world!|
|Hello,world!|
|Hello,world!|
|Hello,world!|
+------------+
- 浏览: 174675 次
- 性别:

- 来自: 烟台

- 详细资料
搜索本博客
我的相册
200804090708271400855637
共 39 张
共 39 张
最近加入圈子
最新评论
-
2007,年终总结
qingzi2534 写道08年一开始计划就完全没有执行,早上起不来,没有时间吃 ...
-- by 刑天战士 -
2007,年终总结
qingzi2534 写道08年一开始计划就完全没有执行,早上起不来,没有时间吃 ...
-- by weiqingfei -
2007,年终总结
08年一开始计划就完全没有执行,早上起不来,没有时间吃早餐,晚上连续熬夜到12点 ...
-- by qingzi2534 -
2007,年终总结
曾经早上8点干起然后干到转钟一直干了半年,最后身体几乎搞垮的人飘过。。。
-- by zhangfeiyu2005 -
2007,年终总结
qingzi2534 写道 每天都要在2点前睡觉 很好奇,到底是几点上班的 ...
-- by fqtrnt






评论排行榜