如果几句小代码能够说清,那么更好。

解决方案 »

  1.   

    指的是“Template Method”模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Te m p l a t e M e t h o d 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
    class Algorithm 
    {
    public void DoAlgorithm() 
    {
    Console.WriteLine("In DoAlgorithm");

    // do some part of the algorithm here

    // step1 goes here
    Console.WriteLine("In Algorithm - DoAlgoStep1");
    // . . .  // step 2 goes here
    Console.WriteLine("In Algorithm - DoAlgoStep2");
    // . . .  // Now call configurable/replacable part
    DoAlgoStep3(); // step 4 goes here
    Console.WriteLine("In Algorithm - DoAlgoStep4");
    // . . .  // Now call next configurable part
    DoAlgoStep5();
    } abstract public void DoAlgoStep3()
    {
    Console.WriteLine("In Algorithm - DoAlgoStep3");
    } abstract public void DoAlgoStep5()
    {
    Console.WriteLine("In Algorithm - DoAlgoStep5");
    }
    }class CustomAlgorithm : Algorithm
    {
    public void DoAlgoStep3()
    {
    Console.WriteLine("In CustomAlgorithm - DoAlgoStep3");
    } public void DoAlgoStep5()
    {
    Console.WriteLine("In CustomAlgorithm - DoAlgoStep5");
    }
    }/// <summary>
    ///    Summary description for Client.
    /// </summary>
    public class Client
    {
        public static int Main(string[] args)
        {
    CustomAlgorithm c = new CustomAlgorithm();
    c.DoAlgorithm();        return 0;
        }
    }
      

  2.   

    Template Method模式java.io.InputStream 类就用到了这个模式吧,可以看看源码,加深下对这个模式的理解啊
      

  3.   

    哥,你们写的详细的模式说明我知道,但说明不了这个问题,比如模板设计模式。
     class a{
       protected abstract b();
       public void f(){b();}
    }让a的对象去调用子类,称为“让我调用你”吗?
      

  4.   

    在做桌面程序,如AWT,或者SWING时会用很多,就是监听器嘛,你不肯能自己写一个程序监听某个事件的发生,比如一个按钮,你没1秒判断它是否被点击,点击了就出发另一个事件,这样太累了吧而现在的情况是,按钮是否被点击你不用管,当按钮被点击了,会来通知你,告诉你我-按钮被点击了,你该调用方法了,这就是don't call me,i will call you.
      

  5.   

    好莱坞原则   ioc 的核心思想
      

  6.   

    Do not call me, let me call you 好莱坞原则 ioc 的核心思想 我喜欢