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

漯河商城网站建设无为县住房和城乡建设局网站首页

漯河商城网站建设,无为县住房和城乡建设局网站首页,长沙网页设计培训推荐沙大计教育专业,如何自己做网站推广系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式#xff0c;5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式#xff0c;每一种模式的概念、使用…系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式每一种模式的概念、使用场景和优缺点。 设计模式之模板方法模式通俗易懂快速理解以及模板方法模式的使用场景 设计模式之-建造者模式通俗易懂理解以及建造者模式的使用场景和示列代码 设计模式之-代理模式快速掌握理解代理模式以及代理模式的使用场景 设计模式之-原型模式快速掌握原型模式通俗易懂的理解原型模式以及使用场景 设计模式之-中介者模式快速掌握中介者模式通俗易懂的讲解中介者模式以及它的使用场景 设计模式之-责任链模式快速掌握责任链模式通俗易懂的讲解责任链模式以及它的使用场景 设计模式之-装饰模式快速掌握装饰模式通俗易懂的讲解装饰模式以及它的使用场景 文章目录 系列文章目录前言一、使用场景通常二、通过一个故事来更好地理解它当谈到模板方法模式时我们可以通过一个故事来更好地理解它。以下是对应于故事的代码示例 前言 当谈到模板方法模式时在面向对象的编程中它是一种行为设计模式。模板方法模式定义了一个操作中的算法骨架将一些步骤延迟到子类中实现使得子类可以在不改变算法结构的情况下重新定义算法中的某些步骤。 使用模板方法模式的主要目的是将通用的算法步骤抽象到父类中然后通过具体的子类来实现这些步骤的具体细节。这样可以避免代码的重复并且使得算法的结构更加清晰可见。 一、使用场景通常 模板方法模式的使用场景通常是在以下情况下 当有一个通用的算法结构但其中的某些步骤的具体实现可能会有所不同时可以使用模板方法模式。例如一个建筑公司可能有多个具体的建筑项目但它们共享相同的施工过程。 当需要在不改变算法结构的情况下通过子类来扩展或修改某些步骤的实现时可以使用模板方法模式。 二、通过一个故事来更好地理解它 当谈到模板方法模式时我们可以通过一个故事来更好地理解它。 假设有一个叫做Tom的人他是一名音乐家他每天都有一套固定的音乐表演流程。这个流程包括三个步骤准备乐器、演奏音乐、道别观众。 Tom为了能够更好地组织自己的表演决定使用模板方法模式。他创建了一个名为Musician的抽象类其中定义了一个名为performance的模板方法。 开始 Tom首先准备乐器这是表演的第一步。在抽象类Musician中他定义了一个名为prepareInstrument的抽象方法他知道这是一个必须由不同的音乐家来具体实现的步骤。 然后 Tom开始演奏音乐这是表演的第二步。在抽象类Musician中他定义了一个名为playMusic的具体方法这个方法有一个默认的实现其中包含了一些通用的演奏操作。 最后 Tom道别观众这是表演的最后一步。在抽象类Musician中他定义了一个名为farewellAudience的抽象方法他知道每个音乐家都有不同的方式来与观众道别。 Tom创建了两个具体的子类Pianist和Violinist他们都继承了Musician类。在这两个子类中他们分别实现了抽象方法prepareInstrument和farewellAudience。 当Tom要进行表演时他选择具体的子类来实例化并调用performance方法。这个方法按照抽象类中定义的顺序依次调用了prepareInstrument、playMusic和farewellAudience方法。 通过模板方法模式Tom可以轻松地组织自己的音乐表演流程而不必关心每个具体步骤的细节。他可以根据需要选择不同的子类来实现特定的步骤从而实现了代码的复用和灵活性的提高。 以下是对应于故事的代码示例 // 抽象类 abstract class Musician {// 模板方法public final void performance() {prepareInstrument();playMusic();farewellAudience();}// 抽象方法子类必须实现protected abstract void prepareInstrument();// 具体方法子类可以选择性实现protected void playMusic() {System.out.println(Playing music);}// 抽象方法子类必须实现protected abstract void farewellAudience(); }// 具体类钢琴家 class Pianist extends Musician {Overrideprotected void prepareInstrument() {System.out.println(Preparing piano);}Overrideprotected void farewellAudience() {System.out.println(Farewell, audience);} }// 具体类小提琴家 class Violinist extends Musician {Overrideprotected void prepareInstrument() {System.out.println(Preparing violin);}Overrideprotected void farewellAudience() {System.out.println(Farewell, audience);} }// 客户端代码 public class Main {public static void main(String[] args) {Musician pianist new Pianist();pianist.performance();Musician violinist new Violinist();violinist.performance();} }在上面的示例中Musician是一个抽象类其中定义了一个模板方法performance这个方法包含了一系列的表演步骤调用。其中prepareInstrument和farewellAudience是抽象方法需要在具体的子类中实现而playMusic是一个具体方法可以选择性地在子类中实现。 Pianist和Violinist是具体的子类它们继承了Musician并实现了其中的抽象方法。通过调用performance方法可以看到具体子类中的实现细节按照抽象类中定义的算法骨架被执行。 这样通过模板方法模式Tom可以按照固定的流程进行音乐表演而不必关心每个具体步骤的细节。他可以根据需要选择不同的子类来实现特定的步骤从而实现了代码的复用和灵活性的提高。
http://www.sadfv.cn/news/49183/

相关文章:

  • 山东省建设厅官方网站怎么样godaddy wordpress托管
  • 国内外网站开发现状搜索推广专员
  • 网站开发用台式机电脑配置纯html静态网站
  • 做网站需要哪些框架做号网站吗
  • 百度做网站需要多少钱盐城亭湖区建设局网站
  • 网站的大图标怎么做Wordpress 图片之间空隙
  • 网站建设公司怎么盈利做ppt模板的网站有哪些
  • 如何搭建一个视频网站网站建设与管理课程设计
  • 营销型网站网站网站建设虚拟主机
  • 广州企业网站哪家好小程序推广怎么赚钱
  • 关于网站建设的入门书wordpress 黑色
  • 网页设计门户网站英文网站的外部链接 建设
  • 网站后台修改图片网络公司网站制作岗位职责
  • 深圳网站开发公司哪家好成都搜索引擎优化推广维护
  • 快速排名优化已有的网站如何做排名优化
  • 百度网站好评贵州省建设厅造价通官方网站
  • 如何向搜索引擎提交网站网站 推广商系统 设计
  • 门户网站开发如何提高产品排名佛山网站免费制作
  • 写着网站建设图片网站做联盟还赚钱吗
  • 专题类响应式网站建设怎么样建设自己网站
  • 公司做网站的费属于广告费么国内做网站大公司
  • php做网站做的比较好的家具网站首页
  • 如何做黑彩网站网站开发与开发
  • 个人电子商务网站建设沈阳企业网站制作公司
  • 长春市做网站网站建设销售方面会遇到的问题
  • 网站流量大小对网站有什么影响免费商用图片的网站
  • 建设通网站是筑龙网的吗制作wordpress模板教程
  • 天河网站建设公司餐饮招商加盟网站建设
  • 产品推广网站设计中山seo扣费
  • 注册网站时手机号格式不正确分类达人介绍