- 浏览: 429074 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
HummerModel.java代码如下:
HummerH1Model.java代码如下:
HummerH2Model.java代码如下:
Client.java代码如下:
运行结果如下:
package com.designPattern.templateMethod; public abstract class HummerModel { protected abstract void start(); protected abstract void stop(); protected abstract void alarm(); protected abstract void engineBoom(); /** * 这就是模板方法:run()定义了其他方法的顺序,并且子类不能修改这个run()方法(修饰符为final) * 在模板方法中按照一定的规则和顺序调用抽象方法,抽象方法在不同的子类中内容不同 */ final public void run(){ this.start(); this.engineBoom(); if(this.isAlarm()){ this.alarm(); } this.stop(); } protected boolean isAlarm(){ return true; } }
HummerH1Model.java代码如下:
package com.designPattern.templateMethod; public class HummerH1Model extends HummerModel{ private boolean alarmFlag = true; @Override protected void start() { System.out.println("悍马1启动!"); } @Override protected void stop() { System.out.println("悍马1停车!"); } @Override protected void alarm() { System.out.println("悍马1鸣笛!"); } @Override protected void engineBoom() { System.out.println("悍马1引擎启动!"); } protected boolean isAlarm(){ return this.alarmFlag; } public void setAlarm(boolean isAlarm){ this.alarmFlag = isAlarm; } }
HummerH2Model.java代码如下:
package com.designPattern.templateMethod; public class HummerH2Model extends HummerModel{ @Override protected void start() { System.out.println("悍马2发动!"); } @Override protected void stop() { System.out.println("悍马2停车!"); } @Override protected void alarm() { System.out.println("悍马2鸣笛!"); } @Override protected void engineBoom() { System.out.println("悍马2引擎启动!"); } public boolean isAlarm(){ return false; } }
Client.java代码如下:
package com.designPattern.templateMethod; public class Client { public static void main(String[] args) { HummerModel h1 = new HummerH1Model(); h1.run(); HummerModel h2 = new HummerH2Model(); h2.run(); } }
运行结果如下:
悍马1启动! 悍马1引擎启动! 悍马1鸣笛! 悍马1停车! 悍马2发动! 悍马2引擎启动! 悍马2停车!
发表评论
-
设计模式----中介者模式(demiator pattern)
2013-07-21 22:55 936AbstractMediator.java代码如下: pa ... -
设计模式----原型模式(prototype pattern)
2013-07-21 22:51 641AdvTemplate.java代码如下: package ... -
设计模式----状态模式(state pattern)
2013-07-21 22:48 1208LiftState.java代码如下: package ... -
设计模式----访问者模式(visitor pattern)
2013-07-21 22:44 978IVisitor.java代码如下: package co ... -
设计模式----观察者模式(observer)
2013-07-20 19:53 1073这里采用两种方式实现观察者模式:第一种方式为完全自己写, ... -
设计模式----组合模式(composite)
2013-07-20 16:13 933该设计模式是以公司的组织结构为背景的 Crop.java代码 ... -
设计模式----迭代器模式(Iterator)
2013-07-20 15:59 921IProject.java代码如下: package co ... -
设计模式----装饰者模式(decorator pattern)
2013-07-15 09:08 1028SchoolReport.java代码如下: packag ... -
设计模式----命令模式(command pattern)
2013-07-15 09:09 960Group.java代码如下: pa ... -
设计模式----桥梁模式(bridge pattern)
2013-07-14 22:21 1187Product.java代码如下: package com ... -
设计模式----适配器模式(adapter)
2013-07-14 13:37 869IUserInfo.java代码如下: package c ... -
设计模式----门面模式(facade)
2013-07-14 13:30 949LetterProcess.java代码如下 ... -
设计模式----抽象工厂模式(abstract factory pattern)
2013-07-13 23:09 915Human.java代码如下: package com. ... -
设计模式----工厂方法模式(factory method pattern)
2013-07-10 22:19 1083给定一个工厂类,用这个工厂类造出一堆对象来,这些对象对应的类实 ... -
设计模式----多例模式(Multition)
2013-07-02 22:47 1036Emperor.java 代码如下: ... -
设计模式----单例模式(singleton)
2013-06-30 22:17 759单例就是唯一的意思。 第一种单例实现方式(在多线程环境中存在 ... -
设计模式----代理模式(proxy)
2013-06-30 22:02 963代理模式主要使用了java ... -
设计模式----策略模式(strategy)
2013-06-29 22:17 1093本文参考别人设计模式的一个例子。 关于诸葛亮的三个锦囊妙计的 ... -
装饰着模式(decorator)
2012-09-09 21:51 1011一下代码就是运用了装饰者模式: package com.ba ... -
观察者模式(observer)
2012-09-09 19:36 945设计模式中观察者模式的实现有很多方式,这里列出两种实现方式 1 ...
相关推荐
模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在C++这样的面向对象编程语言中。这种模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的...
设计模式(21)-Template Method Pattern 设计模式(20)-Visitor Pattern 设计模式(19)-Observer Pattern 设计模式(18)-Command Pattern 设计模式(17)-Chain of Responsibility Pattern 设计模式(16)...
代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)、适配器模式(Adapter Pattern)、模板方法模式(Template Method...
算法的封装与切换——策略模式(四) 模板方法模式-Template Method Pattern 模板方法模式深度解析(一) 模板方法模式深度解析(二) 模板方法模式深度解析(三) 访问者模式-Visitor Pattern 操作复杂对象结构——...
模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在父类中定义算法的框架,然后由子类提供具体的实现。这种模式的核心是“模板方法”,它在父类中定义了一个操作的步骤顺序,并将某些步骤声明为...
模板方法模式(Template Method Pattern)是一种行为型设计模式,它允许我们定义算法的骨架,并将部分步骤推迟到子类中实现。这种模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。 #### 模式背景...
模板方法模式(Template Pattern)是设计模式中行为型模式的一种,它定义了操作中的算法骨架,而将一些步骤延迟到子类中。这种模式允许子类重新定义或改变某些基本操作,但整体结构和顺序保持不变。在Java编程中,...
包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)...Strategy)、模板方法模式(Template Method)和访问者模式(Visitor)...
- 模板方法(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 - 访问者(Visitor):表示一个作用于某对象结构中的...
- 模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 - 访问者模式(Visitor):表示一个作用于某对象...
14. **模板方法模式(Template Method)**:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。C++11的虚函数和模板可以实现这一模式。 15. **命令模式(Command)**:将请求封装为一个对象,以便使用...
- **模板方法**(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 - **访问者**(Visitor):表示一个作用于某对象结构中的各元素的操作。 #### 八、设计模式的应用总结 **设计模式的应用...
- **模板方法模式(Template Method)**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 - **观察者模式(Observer)**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都...
如命令(Command)、解释器(Interpreter)、迭代器(Iterator)、中介者(Mediator)、备忘录(Memento)、观察者(Observer)、状态(State)、策略(Strategy)、模板方法(Template Method)、访问者(Visitor)...
- **模板方法模式(Template Method)**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 - **访问者模式(Visitor)**:表示一个作用于某对象结构中的各元素的操作。 这些设计模式在C++中可以通过继承、...
行为型模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、命令(Command)、迭代器(Iterator)、访问者(Visitor)、备忘录(Memento)、状态(State)、职责链(Chain of Responsibility...
- 模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 - 访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作,它可以在不改变各元素的类的前提下定义作用于...
模板方法模式作为设计模式之一,是一种行为模式,它在面向对象设计中扮演着关键角色。该模式允许我们在抽象类中定义一个算法的骨架,而将一些步骤延迟到子类中。这种做法使得子类可以不改变算法的结构即可重定义算法...
9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合...