`
yaoweinan
  • 浏览: 142600 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

模版模式(TemplatePattern)

阅读更多

模版模式分为2个部分

 

1.抽象模版

2.具体模版

 

我的个人理解就是在抽象模版中定义其子类所有持有的动作,但并不去实现,并且定义好了这些动作的执行顺序

 

在具体模版实现具体动作的实际处理,但这些动作对外执行的顺序,都是在抽象模版中定义好的,这些抽象方法和顺序估计就是所谓的模版吧。

 

对计算机的操作我们最清楚不过了,开机->系统启动->使用->关机->系统关闭,下面就看看我是怎么来用模板模式来实现的个人电脑和一个特殊的服务器电脑。

AbstractComputerModel:抽象模版

ServerComputer、PersonalComputer 具体模版

Person 使用者

 

 

AbstractComputerModel

 

package j2se.pattern;

/**
 * 
 * @author Lyon Yao
 *
 */
public abstract class AbstractComputerModel {
	protected abstract void pushStart();
	protected abstract void start();
	protected abstract void operate();
	protected abstract void pushStop();
	protected abstract void stop();
	protected boolean canOperate() {
		return true;
	}
	public final void use(){
		pushStart();
		start();
		if(canOperate()){
			operate();
		}
		pushStop();
		stop();
	}
}

 PersonalComputer

 

package j2se.pattern;

public class PersonalComputer extends AbstractComputerModel {

	@Override
	protected void pushStart() {
		// TODO Auto-generated method stub
		System.out.println("你按了开机按钮");
	}

	@Override
	protected void start() {
		// TODO Auto-generated method stub
		System.out.println("电脑正在启动...");
	}

	@Override
	protected void operate() {
		// TODO Auto-generated method stub
		System.out.println("你正在操作电脑...");
	}

	@Override
	protected void pushStop() {
		// TODO Auto-generated method stub
		System.out.println("你按了关机按钮..");
	}

	@Override
	protected void stop() {
		// TODO Auto-generated method stub
		System.out.println("电脑正在关闭...");
	}

}

 ServerComputer

 

package j2se.pattern;

/**
 * 服务器  比较特别  设置好之后就会保存到硬盘,下次开机默认就不能操作了,只有按下一键恢复按钮才能重新设置,操作
 * @author Lyon Yao
 *
 */
public class ServerComputer extends AbstractComputerModel {

	private static boolean canOperate=true;

	@Override
	protected void pushStart() {
		// TODO Auto-generated method stub
		System.out.println("你按了服务器开机按钮");
	}

	@Override
	protected void start() {
		// TODO Auto-generated method stub
		System.out.println("服务器正在启动....");
	}

	@Override
	protected void operate() {
		// TODO Auto-generated method stub
		System.out.println("你正在操作服务器...");
		this.canOperate=false;
	}

	@Override
	protected void pushStop() {
		// TODO Auto-generated method stub
		System.out.println("你按了服务器关机按钮");
	}

	@Override
	protected void stop() {
		// TODO Auto-generated method stub
		System.out.println("服务器正在关机...11");
	}

	@Override
	protected boolean canOperate() {
		// TODO Auto-generated method stub
		return this.canOperate;
	}
	public void resetServer(){
		this.canOperate=true;
	}
	
}

 Person

 

 

package j2se.pattern.test;

import j2se.pattern.PersonalComputer;
import j2se.pattern.ServerComputer;

public class Person {
	private boolean o;
	public static void main(String []args){
		PersonalComputer p=new PersonalComputer();
		p.use();
		
		System.out.println("................................");
		ServerComputer computer=new ServerComputer();
		
		computer.use();
		
		computer.use();
		computer.resetServer();
		
		computer.use();
		
		
	}
}
分享到:
评论

相关推荐

    模板模式Template Pattern

    ### 模板模式 (Template Pattern) #### 一、概述 模板模式是一种常用的行为设计模式,其核心在于定义了一个算法的框架,并允许子类提供具体的实现细节。通过这种方式,子类可以继承并重写某些方法,但整个算法的...

    模版方法模式TemplatePattern

    模板方法模式(Template Pattern)是设计模式中行为型模式的一种,它定义了操作中的算法骨架,而将一些步骤延迟到子类中。这种模式允许子类重新定义或改变某些基本操作,但整体结构和顺序保持不变。在Java编程中,...

    模板方法模式(Template Method Pattern)详解 1. 什么是模板方法模式? 2. 为什么需要模板方法模式? 3. 模板方法模式的核心概念 3.1 模板方法(Template Met

    模板方法模式(Template Method Pattern)详解 1. 什么是模板方法模式? 2. 为什么需要模板方法模式? 3. 模板方法模式的核心概念 3.1 模板方法(Template Method) 3.2 具体方法(Concrete Method) 3.3 抽象方法...

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在C++这样的面向对象编程语言中。这种模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的...

    Pattern Recognition Letters论文模板

    《模式识别信函》(Pattern Recognition Letters) 是一本在计算机科学和信息技术领域内享有盛誉的期刊,专注于模式识别和机器学习的研究成果。这个压缩包提供了该期刊的论文提交模板,方便作者按照统一的格式规范撰写...

    设计模式之简单模板模式(附demo)

    **模板模式(Template Pattern)**是一种行为设计模式,它使你能在抽象类中定义操作算法的框架,而将一些步骤延迟到子类中。这样,子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在Java、C#等面向...

    TemplatePattern:模板模式示例

    模板模式 模板模式示例 在模板模式中,抽象类公开定义的方式/模板来执行其方法。 它的子类可以根据需要重写方法的实现,但是调用的方式应与抽象类所定义的方式相同。 此模式属于行为模式类别。 执行 我们将创建一个...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合...

    用Java实现23种设计模式

    模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4. J2EE 模式 MVC 模式(MVC Pattern) 业务代表模式(Business Delegate Pattern) 数据访问对象模式(Dao Pattern) 前端控制器模式(Front ...

    Template模式

    **模板模式(Template Pattern)**是一种行为设计模式,它在面向对象编程中扮演着重要的角色,尤其是在代码复用和保持代码结构一致性方面。该模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。这使得子类...

    设计模式_模板方法模式.zip

    在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 模板方法模式 java ...

    php设计模式 Template (模板模式)

    模板模式(Template Pattern)是行为设计模式的一种,属于GOF(Gang of Four)设计模式中的结构型模式。这种模式主要用于定义算法的骨架,它将一些步骤的实现延迟到子类中。模板方法使得子类可以在不改变算法结构的...

    Java设计模式之模板模式(Template模式)介绍

    模板模式(Template Pattern)是设计模式中的一种行为模式,它提供了一种代码复用的方式,通过定义一个操作的框架,将具体的实现细节留给子类来完成。这种模式使得程序的结构更加清晰,同时也增强了代码的可扩展性。...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    33种JAVA设计模式DEMO

    模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4 J2EE 模式 这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。 MVC 模式(MVC Pattern) 业务代表模式(Business Delegate ...

    python 模板方法模式(示例)

    设计模式——模板方法模式模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤使用场景:当不变和可...

    C#模板方法模式(Template Method Pattern)实例教程

    模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在定义算法的框架时,将具体步骤延迟到子类中。这种模式的核心在于抽象类,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。子类可以...

    【设计模式】设计模式源代码以及建模源文件,包括工厂模式、建造者模式、适配器模式、装饰器模式、模板设计模式、策略模式等.zip

    模板设计模式(Template Pattern)是一种行为设计模式,定义了一个操作中的算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。模板方法是一种代码...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下...模板方法模式(Template Method) 访问者模式(Visitor)

Global site tag (gtag.js) - Google Analytics