首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

2.1模板方法形式2

2013-01-21 
2.1模板方法模式2接 package 模板方法模式import static tips.Print.*public class Sup2{private void s

2.1模板方法模式2

接 package 模板方法模式;import static tips.Print.*;public class Sup2{ private void step1(){ pln("step1"); } //public void step2(){} private void step3(){pln("step3"); } //使用回调 public final void template2(HandleStep2 h){ step1(); h.step2(); step3(); }}

 

package 模板方法模式;public interface HandleStep2{    void step2();}


 

package 模板方法模式;public class Test{         public static void test(){        Sup s = new Sub();        s.templateMethod();        s = new Sub2();        s.templateMethod();    }    public static void test2(){        Sup2 s = new Sup2();        s.template2(new HandleStep2(){           @Override public void step2(){               System.out.println("step2()");           }        });    }}


ps:GoF使用钩子和好莱坞法则介绍本模式,说明他们脑袋里面向过程的流毒尚存。一个简单的东西被他们说得云山雾绕。总之,我刚看5.10时就半天没有看懂。鄙视自己。

使用C#的程序员处理回调更舒服,可以用λ表达式。 

热点排行