- 浏览: 935777 次
- 性别:
- 来自: 魔都
文章分类
- 全部博客 (745)
- MultiThread (19)
- My Plan (118)
- JavaBasic (61)
- MyInterview (104)
- InternetTechnique (5)
- ProjectConclusion (1)
- Maven (5)
- MogoDb (5)
- Hadoop (11)
- Memcached (6)
- TechniqueCollect (1)
- Ibaits (1)
- Android (34)
- ItLife (40)
- Tree (2)
- ProjectArchitect (7)
- Open Source (3)
- liunx (5)
- socket (8)
- Spring (27)
- DesginPattern (35)
- WebBasic (13)
- English (13)
- structs (1)
- structs2 (2)
- Oracle (17)
- Hibernate (2)
- JavaScript (4)
- Jdbc (1)
- Jvm (15)
- Ibatis (1)
- DataStructures (13)
- Https/Socket/Tcp/Ip (3)
- Linux (4)
- Webservice (7)
- Io (2)
- Svn (1)
- Css (1)
- Ajax (1)
- ExtJs (1)
- UML (2)
- DataBase (6)
- BankTechnique (3)
- SpringMvc (3)
- Nio (3)
- Load Balancing/Cluster (3)
- Tools (1)
- javaPerformanceOptimization (8)
- Lucene(SEO) (1)
- My Think (80)
- NodeJs (1)
- Quartz (1)
- Distributed-java (1)
- MySql (7)
- Project (4)
- junit (4)
- framework (1)
- enCache (1)
- git (2)
- SCJP (1)
- sd (1)
最新评论
-
lkjxshi:
你都这水平了还考这个证干嘛
SCJP 认证考试指南 -
钟逸华:
问的真多
百度java开发面试题(转) -
zuimeitulip:
觉得我就是这样的,从小阅读量就很少,导致现在的读的速度非常慢, ...
让读书成为一种习惯 -
DDT_123456:
我觉得你是不符合要求。问你hashmap的那个问题,你那样回答 ...
阿里面试2(转) -
jingjing0907:
刚刚写了很多读过此博客的感受,竟然没有发上去,以为我注册账号还 ...
让读书成为一种习惯
package com.createtype.desginpatterns.templatemethod; /** * @author cbf4Life cbf4life@126.com I'm glad to share my knowledge with you * all. Hummer Model是悍马车辆模型的意思,不是悍马美女车模 */ public abstract class HummerModel { /* * 首先,这个模型要能够被发动起来,别管是手摇发动,还是电力发动,反正 是要能够发动起来,那这个实现要在实现类里了 */ protected abstract void start(); // 能发动,那还要能停下来,那才是真本事 protected abstract void stop(); // 喇叭会出声音,是滴滴叫,还是哔哔叫 protected abstract void alarm(); // 引擎会轰隆隆的响,不响那是假的 protected abstract void engineBoom(); // 那模型应该会跑吧,别管是人推的,还是电力驱动,总之要会跑 final public void run() { // 先发动汽车 this.start(); // 引擎开始轰鸣 this.engineBoom(); // 喇嘛想让它响就响,不想让它响就不响 if (this.isAlarm()) { this.alarm(); } // 到达目的地就停车 this.stop(); } // 钩子方法,默认喇叭是会响的 protected boolean isAlarm() { return true; } } package com.createtype.desginpatterns.templatemethod; /** * @author cbf4Life cbf4life@126.com I'm glad to share my knowledge with you * all. H1和H2有什么差别,还真不知道,真没接触过悍马 */ public class HummerH2Model extends HummerModel { @Override protected void alarm() { System.out.println("悍马H2鸣笛..."); } @Override protected void engineBoom() { System.out.println("悍马H2引擎声音是这样在..."); } @Override protected void start() { System.out.println("悍马H2发动..."); } @Override protected void stop() { System.out.println("悍马H1停车..."); } // 默认没有喇叭的 @Override protected boolean isAlarm() { return false; } } package com.createtype.desginpatterns.templatemethod; /** * @author cbf4Life cbf4life@126.com I'm glad to share my knowledge with you * all. 悍马车是每个越野者的最爱,其中H1最接近军用系列 */ public class HummerH1Model extends HummerModel { private boolean alarmFlag = true; // 是否要响喇叭 @Override protected void alarm() { System.out.println("悍马H1鸣笛..."); } @Override protected void engineBoom() { System.out.println("悍马H1引擎声音是这样在..."); } @Override protected void start() { System.out.println("悍马H1发动..."); } @Override protected void stop() { System.out.println("悍马H1停车..."); } @Override protected boolean isAlarm() { return this.alarmFlag; } // 要不要响喇叭,是有客户的来决定的 public void setAlarm(boolean isAlarm) { this.alarmFlag = isAlarm; } } package com.createtype.desginpatterns.templatemethod; /** * @author cbf4Life cbf4life@126.com I'm glad to share my knowledge with you * all. 客户开始使用这个模型 */ public class Client { public static void main(String[] args) { // 客户开着H1型号,出去遛弯了 HummerH1Model h1 = new HummerH1Model(); h1.setAlarm(false); h1.run(); // 汽车跑起来了; // 客户开H2型号,出去玩耍了 // HummerModel h2 = new HummerH2Model(); // h2.run(); } }
文章链接:http://sunnylocus.iteye.com/blog/216500javascript:mctmp(0);
模板方法模式:
1.那我们总结一下模板方法模式,模板方法模式就是在模板方法中按照一个的规则和顺序调用基本方法,
具体到我们上面那个例子就是run 方法按照规定的顺序(先调用start,然后再调用engineBoom,再调用
alarm,最后调用stop)调用本类的其他方法,并且由isAlarm 方法的返回值确定run 中的执行顺序变更,
2.其中TemplateMethod 就是模板方法,operation1 和operation2 就是基本方法,模板方法是通过汇总
或排序基本方法而产生的结果集。
3.作为模板的方法定义在父类(父类为抽象类),而方法定义使用抽象方法,实现抽象方法的是子类,要在子类实现方法,
才能决定具体的操作。如果在不同的子类执行不同实现就可以发展出不同的处理内容。
不过,无论在哪个子类执行任何一种实现,处理的大致流程都还是要依照父类制定的方式。
- DesignPatterns.rar (120.8 KB)
- 下载次数: 2
发表评论
-
关于Java 23种设计模式的有趣见解
2013-08-10 18:01 989关于Java 23种设计模式的有趣见解 [来源] 51CT ... -
Java中常用的设计模式(转)
2013-01-30 12:30 1083下面是我对一些常用设计模式的理解: 模式分为:行为模 ... -
工厂模式,抽象工厂模式,简单工厂的区别
2012-10-10 21:35 9321.抽象工厂模式与工厂方法模式的最大区别就在于,工 ... -
java设计模式之常用设计模式分析
2012-06-05 09:09 1247常用的设计模式有:工厂模式(工厂方法模式,简单工厂模式, ... -
java设计模式之责任链模式(行为模式 )
2012-06-04 14:31 1082(11).责任链模式: 文章链接:http:// ... -
java设计模式之观察着模式(行为模式)
2012-06-04 14:28 957(10).观察着模式Observer 文章链接:ht ... -
java设计模式之适配器模式(结构型模式)
2012-06-04 14:26 649(9).适配器模式 文章链接:http://chjl2 ... -
java设计模式之动态代理模式(结构型模式)
2012-06-04 14:24 1130(8).代理模式: 文章 ... -
java设计模式之代理模式(结构型模式)
2012-06-04 14:22 1024(8).代理模式: ... -
java设计模式之——装饰模式结(构型模式)
2012-06-03 19:34 975三.例子代码:使用装饰 ... -
java设计模式之缺省适配器模式(构型模式)
2012-06-03 19:31 1352缺省适配器模式:文章链接:http://jzinfo.itey ... -
java设计模式之——组合模式(结构型模式 )
2012-06-03 18:24 1301接口的作用是什么?定 ... -
java设计模式之——策略模式(行为模式 )
2012-06-03 16:54 1025文章链接:http://yangguangfu ... -
java设计模式之简单工厂模式(创建型模式)
2012-06-01 00:01 1234/** * ## 具体产品(Con ... -
工厂模式,简单工厂模式,抽象工厂模式三者有什么区别
2012-05-31 23:59 1267文章链接: http://blog.csdn.net/ ... -
java设计模式之抽象工厂模式(创建型模式)
2012-05-31 23:57 1111package com.createtype.desgi ... -
java设计模式之工厂方法模式(创建型模式)
2012-05-31 23:56 924package com.createtype.desg ... -
java设计模式之单例模式(创建型模式)
2012-05-30 17:48 1039单列模式: 优点 ... -
java中设计模式分类
2012-05-01 18:31 1119常用的设计模式有:工厂模式(工厂方法模式,简单工厂模式, ... -
Bridge模式(桥接模式)
2012-04-17 22:19 927文章链接:http://airu.itey ...
相关推荐
这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...
JAVA-设计模式-行为型模式-模板方法模式
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
java设计模式示例 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型...
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元...
目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式
设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 ...
Java代码积累:并发 设计模式 数据结构 使用容器 实用 类 基础知识 并发性 演示线程的生命周期 生产者-消费者 设计模式参考《大话设计模式》 工厂简单模式 创造型模式 工厂方法模式 抽象工厂模式 原型模式 建造者...
《Java设计模式》源代码.rar “结构型模式”中的“适配器模式”的定义、结构与使用。 “结构型模式”中的“桥接模式”的定义、结构与使用。 “结构型模式”中的组合模式的定义、结构与使用。 “结构型模式”中的装饰...
模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4 J2EE 模式 这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。 MVC 模式(MVC Pattern) 业务代表模式(Business Delegate ...
java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元...
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式...这种类型的设计模式属于行为型模式。 模板方法模式 java demo
设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 ...
java设计模式word整理,付代码说明,时候java进阶选手,欢迎选购! 目录 1 1. 设计模式 2 1.1 创建型模式 2 1.1.1 工厂方法 2 1.1.2 抽象工厂 4 1.1.3 建造者模式 6 1.1.4 单态模式 9 1.1.5 原型模式 10 1.2 结构型...
Java设计模式是软件开发中常见问题的标准解决方案,它们是经过时间考验和实践证明的有效设计方法。设计模式的目标是提高代码的可重用性、可维护性和可读性,同时减少设计和实现中的复杂性。 Java设计模式可以分为...
详细描述了java设计模式种23种模式,其中包括,创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、...
设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 ...
简单易懂的java 设计模式文档,对23种设计模式举例讲解:总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器...
用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...