模板方法模式----你该找对象了(一)

时间:2015年8月20日

事件:七夕,是牛郎织女鹊桥相会的日子,也是情侣想尽办法秀恩爱的日子。鲜花、美女、烛光晚餐、聚会K歌……这些七夕必备节目,让单身狗汪哭晕在厕所。此时单身的你是不是有些想法呢?

目录

1、概述

2、结构与分析

3、实例运用

4、模式总结

1、概述

接着七夕找对象说,如何保证尽快找到对象

(架构逻辑的正常执行),要确定先做什么,在做什么,最后得到我们想要的。

上有政策,下有对策

在追求妹纸时,一般都包含几个基本固定步骤:

  1. 认识妹纸
  2. 和妹纸成为朋友
  3. 将妹纸变成女朋友

假设这三个过程是定义好追求妹子的固定步骤,你只要按照这个步骤去做就行了,但针对每个步骤不同的人不同的情况都有不一样的方法,这就要看Boy怎么随机应变了,随机应变就是具体实现。

2、结构与分析

找对象第一版

代码实现

class HandSomeBoy

{

public void
MeetGirl() {

Console.WriteLine("步骤一:转角遇到爱—MyLover");

}

public void
MakeFriend() {

Console.WriteLine("步骤二:买999朵玫瑰花送给一见钟情的她");

}

public void
GetGirl() {

Console.WriteLine("步骤三:大声告诉她:“我想成为你的男朋友!");

}

}

找对象第二版

public abstractclass ChaseGirl{

public void
TemplateMethod(){

MeetGirl();

MakeFriend();

GetGirl();

}

public void
MeetGirl() {

Console.WriteLine(“步骤一:转角遇到爱—MyLover");

}

publicabstract void
MakeFriends();

public abstract void
 GetGirl();   
}

客户端

模板方法(Template MethodPattern):定义一个操作中的算法的骨架,而将一些具体实现延迟到子类中。 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

下一篇文章
,讲解模板方法模式的扩展与运用……请继续关注。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-03 16:20:45

模板方法模式----你该找对象了(一)的相关文章

模板方法模式----你该找对象了(二)

上一篇小编叙述 模仿方法模式 模板方法模式----你该找对象了(一) 目录 1.概述 2.结构与分析 3.拓展 4.模式总结 3.拓展 钩子方法给子类留了"后门"可以通过在子类中实现的钩子方法对父类方法的执行进行约束,实现子类对父类行为的反向控制.(体现灵活性)        上篇博客续集,情侣之间约约会,看看电影,喝喝咖啡,调情调情还是不错的.说到喝咖啡,这不来到星巴克咖啡店 ,我们要了一杯咖啡,当漂亮的服务员问你:"先生,您是否要加调料?"你是呆呆地站在那--还

菜鸟译文(二)——使用Java泛型构造模板方法模式

如果你发现你有很多重复的代码,你可能会考虑用模板方法消除容易出错的重复代码.这里有一个例子:下面的两个类,完成了几乎相同的功能: 实例化并初始化一个Reader来读取CSV文件: 读取每一行并解析: 把每一行的字符填充到Product或Customer对象: 将每一个对象添加到Set里: 返回Set. 正如你看到的,只有有注释的地方是不一样的.其他所有步骤都是相同的. ProductCsvReader.java public class ProductCsvReader {       Set<

设计模式(八)the Template method 模板方法模式(类行为型)

1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序.但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关. 例子1:银行业务办理流程 在银行办理业务时,一般都包含几个基本固定步骤: 取号排队->办理具体业务->对银行工作人员进行评分. 取号取号排队和对银行工作人员进行评分业务逻辑是一样的.但是办理具体业务是个不相同的,具体业务可能取款.存款或者转账. 2.问题 如何保证架构逻辑的正常执行,而不被子类破坏 ?

设计模式 ( 二十 ): Template method模板方法模式 -- 行为型

  1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序.但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关.例子1:银行业务办理流程在银行办理业务时,一般都包含几个基本固定步骤:取号排队->办理具体业务->对银行工作人员进行评分.取号取号排队和对银行工作人员进行评分业务逻辑是一样的.但是办理具体业务是个不相同的,具体业务可能取款.存款或者转账. 2.问题 如何保证架构逻辑的正常执行,而不被子类破坏 ? 3.

设计模式 ( 十九 ) 模板方法模式Template method(类行为型)

1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序.但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关.例子1:银行业务办理流程在银行办理业务时,一般都包含几个基本固定步骤:取号排队->办理具体业务->对银行工作人员进行评分.取号取号排队和对银行工作人员进行评分业务逻辑是一样的.但是办理具体业务是个不相同的,具体业务可能取款.存款或者转账. 2.问题 如何保证架构逻辑的正常执行,而不被子类破坏 ? 3.解决

java回调方法、钩子方法以及模板方法模式

在面向对象的语言中,回调则是通过接口或抽象类来实现的,我们把实现这种接口的类称为回调类,回调类的对象称为回调对象,其处理事件的方法叫做回调方法.(摘自百度百科) 那么通过上面那句话将百度百科中的"回调函数"翻译成JAVA版:回调方法就是一个通过回调对象的引用(java中的引用存的是对象的地址)调用的方法.如果你把 回调对象的引用(地址)作参数传递给另一个方法,当这个引用被用来调用其所指向的方法时,我们就说这是回调方法.回调方法不是由该方法的实现方直接调用,而是在特定的事件或条件发生时由

JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来聊聊final这个关键字 final可以修饰类,方法和变量 final修饰的类不可以被继承 final修饰的方法不可以被覆盖 final修饰的变量是一个常量,只能被赋值一次 内部类只能访问被final修饰的局部变量 final,故名思意,就是最终的意思,由以上的五种特性,不过final的出现,也是有

(九)模板方法模式

  转载:http://www.cnblogs.com/zuoxiaolong/p/pattern10.html 模板方法模式,这是一个在许多优秀的开源项目中LZ见的最多的一个设计模式,也是LZ觉得最为优秀的一个设计模式,所以这一章LZ会尽自己所能的去尽量将这个设计模式解释清楚. 模板方法模式,一般是为了统一子类的算法实现步骤,所使用的一种手段或者说是方式.它在父类中定义一系列算法的步骤,而将具体的实现都推迟到子类. 最典型的形式就是一个接口,一个抽象父类,父类中会有一系列的抽象方法,而在子类中

java设计模式 模板方法模式Template Method

设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因.