当前位置: 首页 > news >正文

网站如何做外链2018爱站工具包的主要功能

网站如何做外链2018,爱站工具包的主要功能,网站建设要学哪些软件有哪些方面,长春网站seo介绍 GOF 定义 模板方法模式 Template Method Design Pattern :模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中去实现;模板方法在不改变算法整体结构的情况下,可以重新定义算法中的某些步骤。 代码举例 …

介绍

GOF 定义

模板方法模式 Template Method Design Pattern :模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中去实现;模板方法在不改变算法整体结构·的情况下,可以重新定义算法中的某些步骤。

代码举例

public abstract class AbstractClass{//算法框架方法,使用final避免子类重写public final void templateMethod(){...method1();...method2();}//使用protect保证子类可见,包外不可见protect abstract void method1();//使用protect abstract void method2();
}public class ConcreteClass2 extends AbstractClass{@Overrideprotected void method1(){...具体实现}@Overrideprotected void method2(){...具体实现}
}

应用案例

模板方法的作用 1:复用

InputStream 的案例
InputStream 中有一个模板方法,方法签名是read(byte[],int off,int len);其中包含一个抽象方法 read()的调用,这个方法则留待子类去实现。实现了方法 read(byte[],int off,int len); 的复用,不需要每个子类都重复实现。
Java AbstractList 的案例
AbstractList 中的 addAll 方法中调用了 add 方法,这就是一个模板方法,add 的具体实现依赖于子类的实现。虽然 AbstractList 中没有将 add 方法声明为抽象,但是 add 方法在 AbstractList 中直接抛出了异常

public boolean addAll(int index, Collection<? extends E> c) {rangeCheckForAdd(index);boolean modified = false;for (E e : c) {add(index++, e);modified = true;}return modified;
}public void add(int index, E element) {throw new UnsupportedOperationException();
}

模板方法的作用 2:拓展点

模板方法还可以用作框架的拓展点,例如 Spring MVC WEB 开发中底层使用的 Servlet 技术
直接使用 Servlet 开发时继承 HttpServlet 类后,手写 doGet 和 doPOst 方法。然后服务请求进入 Servlet 时实际上调用的 service 方法。这个 service 方法就可以看做一个模板方法。

模板方法与回调的对比

相同点

回调方法与模板方法的应用场景几乎一致,都是在一个大的算法框架中自由替换其中的某个步骤,起到代码复用和拓展的作用。

不同点

  1. 回调基于组合关系,而模板方法基于继承实现
  2. 回调的组合关系更加灵活
    1. Java 语言的单继承限制
    2. 回调可以使用匿名类,Lambda 表达式来传递代码。但是模板方法必须定义子类
    3. 模板方法不够灵活,如果有多个模板方法和其待实现方法则实现子类必须都实现一遍。

总结

优点

  • 提高代码复用:不变的部分集中在父类,减少代码重复。
  • 提高扩展性:新增子类时,只需实现特定的方法,无需改动模板方法。
  • 保证一致性:确保算法的整体结构稳定,即使在子类中修改了某些步骤。

缺点

  • 过度使用可能导致类结构复杂,特别是继承层次过深时。
  • 对于不需要重用算法结构的情况,引入模板方法可能会增加不必要的抽象。
http://www.hrbkazy.com/news/26271.html

相关文章:

  • 南昌网站设计哪个最好成人短期电脑培训班学费
  • 常熟网站设计台州做优化
  • 企业通用网站模板百度优化教程
  • 广东省建设交易中心网站天津网站建设公司
  • 做h5长图网站线上职业技能培训平台
  • 做网站每年需要多少维护费360优化大师旧版
  • 网站开发软件 论文 摘要线下推广有哪几种渠道
  • div css 中文网站模板优化排名案例
  • 网站备案的域名加不加www百度竞价app
  • 德州企业做网站多少钱深圳竞价托管公司
  • 怎样做学校网站最新军事消息
  • 阿里巴巴网站建设的基本情况营销网站做的好的公司
  • 公司网站开发建设什么会计科目太原seo推广外包
  • 摄影设计网站站长之家查询的网址
  • 抖音营销网站建设价格互联网营销师题库
  • 怎么做盗版视频网站抖音广告推广怎么收费
  • wordpress delete tag南宁网站seo大概多少钱
  • 重庆公司网站制作公司合肥seo优化公司
  • 如何安装织梦做的网站宁波seo搜索引擎优化
  • 中国做外国网购的网站爱站seo综合查询
  • 上海网站设计流程常用搜索引擎有哪些
  • 口碑营销论文网站内部seo优化包括
  • 北京网站制作设计公司排名阿里指数在哪里看
  • 平台网站建设公司哪家好百度搜索引擎盘搜搜
  • 网站改成自适应360推广登录平台
  • wordpress 金融主题seo排名优化是什么
  • 熊猫头表情包制作网站关键词搜索
  • cms网站建设系统软文发稿
  • 搬瓦工vps做网站速度怎么样营销方案怎么写
  • 做设计网站模块的网站万能bt搜索引擎