【设计模式】行为型02模板方法模式(Template Method Patten)
五一长假,没有出去,不喜欢嘈杂的人群,玩了会游戏发泄了下憋在心底的戾气,手旁大马克杯里是母亲泡的绿茶。点开自己的播放列表,耳机里传来的是理查德克莱德曼的致爱丽丝。自己是个凡人,卑微渺小的活着。不说废话了,搞起:
模板方法模式是一种行为型模式,原理比较简单,就是对多态的一种应用,自己也在无意识中使用过很多次,看书时才意识到这种方式被总结为设计模式。
首先说说我自己的理解:模板方法模式是多态的一种应用。书上如此描述:"在模版方法模式中,通过在模版抽象类中定义一个操作的算法骨架,将一些步骤抽取封装到具体的抽象方法中,强迫子类进行按需要重写实现方法,这样使得在使用的时候,子类可以不改变算法结构即可重新定义算法的特定步骤。模版方法模式是基于继承代码复用的基本技术。"--摘抄自阎宏博士的《JAVA与模式》一书
核心是定义标准如类图:
看到这里我觉得没有什么上代码的必要了。。。。。这里盲写一下
// 抽象父类,定义手机这种产品以及三个抽象方法
abstract class Phone {
abstract void style();
abstract void configuration();
abstract void call();
}
// 子类一,普通手机类,实现三个抽象方法
class NormalPhone extends Phone {
public void style() {
System.out.println("生产塑料外壳");
}
public void configuration() {
System.out.println("装配单核CPU1G内存");
}
public void call() {
System.out.println("打电话。。");
}
}
// 自类二,高级手机类,实现三个抽象方法
class HighGradelPhone extends Phone {
public void style() {
System.out.println("生产闪闪发光的土豪金外壳");
}
public void configuration() {
System.out.println("装配108核CPU10G内存");
}
public void call() {
System.out.println("打电话。。。");
}
}
public class Factory {
public static void main(String[] args) {
// 普通手机流水线:
Phone normal = new NormalPhone();
normal.style();
Phone hight = new HighGradelPhone();
hight.style();
}
}
emmmm下一篇见
【设计模式】行为型02模板方法模式(Template Method Patten)的更多相关文章
- 设计模式 ( 十九 ) 模板方法模式Template method(类行为型)
设计模式 ( 十九 ) 模板方法模式Template method(类行为型) 1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行 ...
- 模板方法模式 Template method 行为型 设计模式(二十六)
模板方法模式 Template method 上图为网上百度的一份简历模板截图 相信大家都有求职的经历,那么必然需要简历,写简历的时候,很可能你会网上检索一份简历模板,使用此模板的格式,然后替换为 ...
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
原文:乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 模板方法模式(Template Method ...
- 设计模式 - 模板方法模式(template method pattern) JFrame 具体解释
模板方法模式(template method pattern) JFrame 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(templ ...
- 设计模式 - 模板方法模式(template method pattern) 排序(sort) 具体解释
模板方法模式(template method pattern) 排序(sort) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(tem ...
- 设计模式 - 模板方法模式(template method pattern) 具体解释
模板方法模式(template method pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 模板方法模式(template metho ...
- 二十四种设计模式:模板方法模式(Template Method Pattern)
模板方法模式(Template Method Pattern) 介绍定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Template Method使得子类可以不改变一个算法的结构即可重定义该算法 ...
- 模板方法模式(Template Method Pattern)——复杂流程步骤的设计
模式概述 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单. 在 ...
- 模板方法模式-Template Method(Java实现)
模板方法模式-Template Method 在模板模式中, 处理的流程被定义在父类中, 而具体的处理则交给了子类. 类关系图很简单: Template接口 这里定义了子类需要实现的方法(before ...
随机推荐
- 在vs code中使用dotnet watch run
只需要在csproj文件中加入一行: <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.App&quo ...
- 4 DDD里面的界限上下文
1 界限上下文概念的出现 当开发一个电子商务系统的时候,会给系统划分很多子域,销售子域是核心子域,此外还有物流子域,商品子域等支撑子域.在这些子域里面,一个商品product在销售子域和商品子域里面外 ...
- WPF制作的党旗
原文:WPF制作的党旗 --------------------------------------------------------------------------------引用或转载时请保 ...
- 【多线程】python界面阻塞,白屏,not responding解决的简单例子
x = 0 QWidget. self.thread = Worker() self.xLable = QLabel( self.spinBox = QSpinBox() self.spinBox.s ...
- WPF响应长按事件
原文:WPF响应长按事件 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/78983140 思路:MouseD ...
- springboot 修改连接地址和端口
spring boot 默认 http://localhost:8080 修改为本地IP地址和修改端口在application.properties中添加以下: server.port=9090 se ...
- Xamarin 弹窗
包括通知类弹窗和选择类弹窗,以下是安卓手机的显示效果 关键代码 DisplayAlert("Alert", "You have been alerted", & ...
- WPF 页面切换效果
原文:WPF 页面切换效果 最近做一个有页面切换的吧.. 我觉得这个功能是比较基础的吧.. 在网上百度了一下.. 用NavigationWindow的比较好.. 因为Demo中是带了淡入淡出的页面效果 ...
- WPF的点击穿透
1.background 为{x:null} 或 鼠标点击会穿透,如果不想让一个透明的border点击穿透,设置透明色Transparent时就可以点到这个看起来透明的border 2.当依赖属性I ...
- NSLocalizedDescription=Request failed: unacceptable content-type: text/html 解决方法
使用AFNetworking请求一个网站出现了以下错误 Error Domain=com.alamofire.error.serialization.response Code=- "Req ...