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

做网站和做软件哪个难页制作与网站建设技术大全

做网站和做软件哪个难,页制作与网站建设技术大全,海南省工商注册登记官网,腾讯企业邮箱登录入口下载介绍 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.yayakq.cn/news/764748/

相关文章:

  • 网站开发招标技术要求天津做网站软件
  • 沧州英文模板建站天元建设集团有限公司是什么性质
  • 泰州网站建设 思创电子建设网站的目的
  • 导航网站的好处杭州网站建设及推广
  • 阿里云做视频网站犯法吗广州中企动力网站制作
  • 网站空间多久续一次费网站备案的幕布是什么意思
  • 网站ico图标一般网站设计多大宽度
  • 网站建设开发公司做外贸如何建立网站
  • 照片做视频的软件 模板下载网站好做海报好的psd网站
  • 上海网站注销吗外贸网站虚拟主机
  • 万脑网站建设建设网站群
  • 兵团建设环保局门户网站呢图网站场建设封面
  • 电商网站业务流程天猫交易网站
  • 建设母婴网站的目的西安公司注册核名
  • 南阳网站seo深圳纯设计公司
  • 成都网站建设门户打开百度竞价页面是网站是什么
  • 网站设计待遇做网站查询违章
  • 用python开发网站开发技术wordpress中修改html
  • 手工艺品外贸出口公司网站建设方案网站建设有什么技术
  • 长沙做网站报价网站建设列表网
  • 网站建设的重要指标自媒体平台账号
  • 网站用ps下拉效果怎么做wordpress support hls player
  • 关于 公司网站建设的通知都江堰城乡建设局网站
  • 网站开发经理西直门网站建设
  • 西安SEO网站推广外链平台有哪些
  • 谷歌建站哪家好upyun wordpress
  • 做网站的服务商网站界面设计尺寸规范
  • 做网站需要服务器和什么软件wix网站制作
  • 两学一做微网站交流企业网站成功案例
  • 太原制作公司网站网络营销案例分析题