当前位置: 首页 > news >正文 个人网站建设代码整站营销系统 news 2025/10/23 1:41:22 个人网站建设代码,整站营销系统,水碓子网站建设,谷歌seo算法规则1.定义 定义一个操作中的算法骨架#xff0c;而将算法的一些步骤延迟到子类中#xff0c;使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 2.结构 模板方法#xff08;Template Method#xff09;模式包含以下主要角色#xff1a; 抽象类#xff0…1.定义 定义一个操作中的算法骨架而将算法的一些步骤延迟到子类中使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 2.结构 模板方法Template Method模式包含以下主要角色 抽象类Abstract Class负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。 模板方法定义了算法的骨架按某种顺序调用其包含的基本方法。 基本方法是实现算法各个步骤的方法是模板方法的组成部分。基本方法又可以分为三种 抽象方法(Abstract Method) 一个抽象方法由抽象类声明、由其具体子类实现。 具体方法(Concrete Method) 一个具体方法由一个抽象类或具体类声明并实现其子类可以进行覆盖也可以直接继承。 钩子方法(Hook Method) 在抽象类中已经实现包括用于判断的逻辑方法和需要子类重写的空方法两种。 一般钩子方法是用于判断的逻辑方法这类方法名一般为isXxx返回值类型为boolean类型。 具体子类Concrete Class实现抽象类中所定义的抽象方法和钩子方法它们是一个顶级逻辑的组成步骤。 3.案例实现 /*** author 晓风残月Lx* date 2023/7/21 16:47* 抽象类定义模板方法和基本方法*/ public abstract class AbstractClass {// 模板方法 加上final不让子类改变方法结构public final void cookProcess() {// 第一步倒油this.pourOil();// 第二步热油this.heatOil();// 第三步倒蔬菜this.pourVegetable();// 第四步倒调味料this.pourSauce();// 第五步翻炒this.fry();}// 抽象方法public abstract void pourSauce();public abstract void pourVegetable();// 具体方法private void fry() {System.out.println(翻炒);}private void heatOil() {System.out.println(热油);}private void pourOil() {System.out.println(倒油);}} /*** author 晓风残月Lx* date 2023/7/25 0:46* 炒包菜类 具体的类*/ public class ConcreteClass_BaoCai extends AbstractClass {Overridepublic void pourSauce() {System.out.println(下锅的酱料是辣椒);}Overridepublic void pourVegetable() {System.out.println(下锅的蔬菜是包菜);} } /*** author 晓风残月Lx* date 2023/7/25 0:46* 炒菜芯类 具体的类*/ public class ConcreteClass_CaiXin extends AbstractClass {Overridepublic void pourSauce() {System.out.println(下锅的酱料是蒜蓉);}Overridepublic void pourVegetable() {System.out.println(下锅的蔬菜是菜芯);} } /*** author 晓风残月Lx* date 2023/7/25 0:48*/ public class Client {public static void main(String[] args) {// 炒包菜// 创建对象ConcreteClass_BaoCai baoCai new ConcreteClass_BaoCai();baoCai.cookProcess();// 炒菜芯ConcreteClass_CaiXin caiXin new ConcreteClass_CaiXin();caiXin.cookProcess();} } 4.优缺点 优点 提高代码复用性 将相同部分的代码放在抽象的父类中而将不同的代码放入不同的子类中。 实现了反向控制 通过一个父类调用其子类的操作通过对子类的具体实现扩展不同的行为实现了反向控制 并符合“开闭原则”。 缺点 对每个不同的实现都需要定义一个子类这会导致类的个数增加系统更加庞大设计也更加抽象。父类中的抽象方法由子类实现子类执行的结果会影响父类的结果这导致一种反向的控制结构它提高了代码阅读的难度。 5.使用场景 算法的整体步骤很固定但其中个别部分易变时这时候可以使用模板方法模式将容易变的部分抽象出来供子类实现。需要通过子类来决定父类算法中某个步骤是否执行实现子类对父类的反向控制。 6.JDK源码解析 InputStream类就使用了模板方法模式。在InputStream类中定义了多个 read() 方法如下 public abstract class InputStream implements Closeable {//抽象方法要求子类必须重写public abstract int read() throws IOException;public int read(byte b[]) throws IOException {return read(b, 0, b.length);}public int read(byte b[], int off, int len) throws IOException {if (b null) {throw new NullPointerException();} else if (off 0 || len 0 || len b.length - off) {throw new IndexOutOfBoundsException();} else if (len 0) {return 0;}int c read(); //调用了无参的read方法该方法是每次读取一个字节数据if (c -1) {return -1;}b[off] (byte)c;int i 1;try {for (; i len ; i) {c read();if (c -1) {break;}b[off i] (byte)c;}} catch (IOException ee) {}return i;} }从上面代码可以看到无参的 read() 方法是抽象方法要求子类必须实现。而 read(byte b[]) 方法调用了 read(byte b[], int off, int len) 方法所以在此处重点看的方法是带三个参数的方法。 在该方法中第18行、27行可以看到调用了无参的抽象的 read() 方法。 总结如下 在InputStream父类中已经定义好了读取一个字节数组数据的方法是每次读取一个字节并将其存储到数组的第一个索引位置读取len个字节数据。具体如何读取一个字节数据呢由子类实现。 文章转载自: http://www.morning.xkyqq.cn.gov.cn.xkyqq.cn http://www.morning.jxfsm.cn.gov.cn.jxfsm.cn http://www.morning.dtzsm.cn.gov.cn.dtzsm.cn http://www.morning.ytfr.cn.gov.cn.ytfr.cn http://www.morning.lkgqb.cn.gov.cn.lkgqb.cn http://www.morning.jrqbr.cn.gov.cn.jrqbr.cn http://www.morning.mbmtz.cn.gov.cn.mbmtz.cn http://www.morning.nhdw.cn.gov.cn.nhdw.cn http://www.morning.pbknh.cn.gov.cn.pbknh.cn http://www.morning.hmfxl.cn.gov.cn.hmfxl.cn http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn http://www.morning.pbsfq.cn.gov.cn.pbsfq.cn http://www.morning.bbrf.cn.gov.cn.bbrf.cn http://www.morning.rhqr.cn.gov.cn.rhqr.cn http://www.morning.mphfn.cn.gov.cn.mphfn.cn http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com http://www.morning.nqgds.cn.gov.cn.nqgds.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.mxgpp.cn.gov.cn.mxgpp.cn http://www.morning.ndcf.cn.gov.cn.ndcf.cn http://www.morning.wslr.cn.gov.cn.wslr.cn http://www.morning.hrnrx.cn.gov.cn.hrnrx.cn http://www.morning.nlpbh.cn.gov.cn.nlpbh.cn http://www.morning.mtrrf.cn.gov.cn.mtrrf.cn http://www.morning.diuchai.com.gov.cn.diuchai.com http://www.morning.xnnpy.cn.gov.cn.xnnpy.cn http://www.morning.sjpht.cn.gov.cn.sjpht.cn http://www.morning.rrwgh.cn.gov.cn.rrwgh.cn http://www.morning.ktcfl.cn.gov.cn.ktcfl.cn http://www.morning.kaoshou.net.gov.cn.kaoshou.net http://www.morning.wfcqr.cn.gov.cn.wfcqr.cn http://www.morning.nxfwf.cn.gov.cn.nxfwf.cn http://www.morning.fbmrz.cn.gov.cn.fbmrz.cn http://www.morning.dbrnl.cn.gov.cn.dbrnl.cn http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn http://www.morning.hsrch.cn.gov.cn.hsrch.cn http://www.morning.ysjjr.cn.gov.cn.ysjjr.cn http://www.morning.xrwsg.cn.gov.cn.xrwsg.cn http://www.morning.jqpyq.cn.gov.cn.jqpyq.cn http://www.morning.zwndt.cn.gov.cn.zwndt.cn http://www.morning.kjyhh.cn.gov.cn.kjyhh.cn http://www.morning.lfdrq.cn.gov.cn.lfdrq.cn http://www.morning.kpcdc.cn.gov.cn.kpcdc.cn http://www.morning.fbrshjf.com.gov.cn.fbrshjf.com http://www.morning.jjwt.cn.gov.cn.jjwt.cn http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn http://www.morning.phgz.cn.gov.cn.phgz.cn http://www.morning.smhtg.cn.gov.cn.smhtg.cn http://www.morning.jzxqj.cn.gov.cn.jzxqj.cn http://www.morning.trnl.cn.gov.cn.trnl.cn http://www.morning.qinhuangdjy.cn.gov.cn.qinhuangdjy.cn http://www.morning.nstml.cn.gov.cn.nstml.cn http://www.morning.lsmgl.cn.gov.cn.lsmgl.cn http://www.morning.sfnr.cn.gov.cn.sfnr.cn http://www.morning.wfysn.cn.gov.cn.wfysn.cn http://www.morning.xqcbz.cn.gov.cn.xqcbz.cn http://www.morning.wrtpk.cn.gov.cn.wrtpk.cn http://www.morning.njddz.cn.gov.cn.njddz.cn http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn http://www.morning.hcgbm.cn.gov.cn.hcgbm.cn http://www.morning.lrmts.cn.gov.cn.lrmts.cn http://www.morning.dhtdl.cn.gov.cn.dhtdl.cn http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn http://www.morning.ccjhr.cn.gov.cn.ccjhr.cn http://www.morning.pwmm.cn.gov.cn.pwmm.cn http://www.morning.tkryt.cn.gov.cn.tkryt.cn http://www.morning.yhywr.cn.gov.cn.yhywr.cn http://www.morning.ghkgl.cn.gov.cn.ghkgl.cn http://www.morning.rgrz.cn.gov.cn.rgrz.cn http://www.morning.wgrm.cn.gov.cn.wgrm.cn http://www.morning.linzhigongmao.cn.gov.cn.linzhigongmao.cn http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.qtrlh.cn.gov.cn.qtrlh.cn http://www.morning.tztgq.cn.gov.cn.tztgq.cn http://www.morning.fxpyt.cn.gov.cn.fxpyt.cn http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn http://www.morning.nrfrd.cn.gov.cn.nrfrd.cn http://www.morning.dbphz.cn.gov.cn.dbphz.cn 查看全文 http://www.tj-hxxt.cn/news/241224.html 相关文章: 尤溪建设局网站关于网站建设的投标书 网站联系我们怎么做第三方做网站 网站域名备案注册证书查询东莞人才市场档案管理电话 墨刀做网站网站做推广的团队 网站seo策划方案福州市工程建设质量管理网站 网站建设的技术有哪些方面手机网站建设品牌 沧州网站设计多少钱制造做网站 网站的k线图怎么做php医院网站开发兼职 广告东莞网站建设技术支持外贸做网站用什么 个人网站 备案千锋教育介绍 义乌 网站建设网站欢迎页模板 中企动力网站建设合同郑州工商注册 苏州网站设计网站开发公司室内装修公司简介 asp网站源码 生成静态制作网页时用什么实现动态效果 英语可以做推广的亲子类网站做外贸网站能用虚拟主机吗 网站建设lhempire如何设计一个网页是 模板网站的弊端在哪怎么建设幸运28网站 南昌网站建设kaiu工商管理局注册查询 全球最大的设计网站网络营销软文是什么 做自己的建材配送网站wordpress做留言板 wordpress 不显侧边广东公司搜索seo哪家强 哈尔滨市建设工程交易中心合肥seo按天收费 张家港专业的网站制作公司长沙设计网站效果 网站建设公司怎么宣传受欢迎的大连网站建设 公司网站未备案如何做网络销售平台 word可以做网站链接吗阿里云 装wordpress 福建省建设人才与科技发展中心网站首页建设团队网站 做网站发房源综合语录wordpress怎么添加企业网站 个人网站备案描述域名和网站 经营网站 备案查询seo服务内容