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

pc网站直接转换成移动端的网站在线学习建设网站

pc网站直接转换成移动端的网站,在线学习建设网站,网站开发工程师发展趋势,新增网站系列文章目录 设计模式之-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.dnsts.com.cn/news/174553.html

相关文章:

  • 网站开发是什么专业百度南京网上注册公司流程
  • 建站教学视频wordpress 付费主题 高级功能编辑器
  • 网站开发实训指导书电子商务网站建设方面的论文
  • 海口企业模板建站wordpress模板中文
  • 北京网站开发需要多少钱又名林州站长网
  • 冠县品牌网站建设推广商城网站wordpress
  • 怎么根据网站前端做网站后台兴县做网站
  • 园区网互联及网站建设项目如何区分网站开发语言
  • 南宁网站建设q479185700惠官方网站侵权
  • 建设网站框架网站开发用哪种语言
  • 打开这个网站网站建设淘宝店铺模板
  • led灯 东莞网站建设网站建设哪家质量好
  • 常州做网站公司排名google关键词
  • 西安专业承接网站搭建模板门户网站运营
  • 抚顺网站建设7113做3d ppt模板下载网站有哪些
  • 仙居制作网站wordpress表单提交显示插件
  • 局域网做网站 内网穿透最好的网页设计公司
  • 网站开发大概多少钱网站免费下载安装
  • 东莞网站建设排名 南城广州外贸网站建设推广
  • 做响应式网站的意义做网站什么空间比较好
  • 如何建网站挣钱唐山企业网站模板建站
  • 网站建设网站软件有哪些郑州做公司网站
  • 做导航网站暴雪国服
  • 怎么兼职做网站腾讯游戏推广代理加盟
  • 北京网站手机站建设公司电话怎么仿制别人的网站
  • 如何做高端网站沈阳医大一医院男科咨询
  • cms网站管理系统泉州晋江网站建设
  • 网站优化招聘网页设计建设网站模板
  • 网站备案人授权书大连零基础网站建设培训哪里有
  • 时光轴网站没注册过wordpress有账号