IT虾米网

模板模式和钩子函数详解

lxf 2018年06月24日 架构师 148 0

一.什么是模板模式?

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构就能重新定义该算法的某些特定步骤,模板模式属于设计模式中的行为模式。

二.如何实现模板模式?

public abstract class Hello{ 
 
   abstract void initialize(); 
 
   public final void HelloWorld(){ 
 
      initialize(); 
      if(isDelete()){ 
         System.out.println("删除"); 
      } 
   } 
   
  /** 
   *钩子函数 
   */  
 public boolean isDelete(){ 
 
     return true; 
  } 
} 
public abstract class Game { 
 
   public  void initialize(){ 
        System.out.println("my name is Hello"); 
   } 
}

三.模板模式的实现要素?

     准备一个抽象基类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类更大的灵活性。最后将方法汇总构成一个不可改变的模板方法。

四.模板模式的应用场景?

       算法或操作遵循相似的逻辑,重构时(把相同的代码抽取到父类中),重要,复杂的算法,核心算法设计为模板。

五.模板模式的优点和缺点?

     封装性好,复用性好,屏蔽细节,便于维护这几大优点;不同的实现都需要不同的子类,导致类的数量太多。

 

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

十分钟搞定mongodb副本集详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。