大话设计模式笔记 模板方法模式(常用)

当我们要完成在某一细节层次一致的一个过程或一系列步骤,但某个别步骤在详细的层次上实现不同时,我们通常考虑用模板方法模式来处理。

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

模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。

package templateMethod;

public abstract class Template {

    public abstract void operation1();

    public abstract void operation2();

    public void templateMethod() {
        operation1();
        operation2();
    }
}
package templateMethod;

public class ConcreateClassA extends Template {

    @Override
    public void operation1() {
        System.out.println(this+" opertion1");
    }

    @Override
    public void operation2() {
        System.out.println(this+" opertion2");
    }

    public static void main(String[] args) {
        Template template;
        template=new ConcreateClassA();
        template.templateMethod();
    }
}
时间: 2024-11-10 12:43:12

大话设计模式笔记 模板方法模式(常用)的相关文章

【大话设计模式】—— 模板方法模式

一.概念 上一篇文章刚刚讲了[大话设计模式]-- 原型模式,原型模式主要是通过Clone()方法,创建新的对象,免去了初始化的过程.模板方法模式也特别会"偷工减料",把不变的行为搬移到超类,去除子类中的重复代码,将代码的复用优势展现的淋漓尽致.它为我们提供了特定的结构和样式,我们只需关心填充数据内容就好,省心啊- 下面让我们来看一下它的准确定义: 模板方法(TemplateMethod)模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构

大话设计模式_模板方法模式(Java代码)

模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 简单描述:多个类的行为是差不多的,只是某些局部不一样,则交由父类中抽象出这些子类中相同的部分,父类中定义出不同的部分的接口(方法),这些不同部分的方法则由子类去实现,通过多态,实现代码的重用 大话设计模式中的截图: 例子代码: AbstractClass类: 1 package com.longsheng.templatemethod; 2 3 public

大话设计模式之---模板方法模式

在学习java的过程中,我们肯定听到过设计模式这名词,在行业中有这么一句话,若您能熟练的掌握23种设计模式,那么你便是大牛! 好了,废话不多说,今天我跟大家分享一下23种设计模式之一的  模板方法 设计模式 首先我们要知道什么是模板方法设计模式? 模板方法设计模式就是定义一个操作中的算法骨架,而将一些实现步骤延迟到子类当中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 为什么要使用模板方法设计模式? 模板方法模式是比较简单的一种设计模式,但是它却是代码复用的一项基本的

大话设计模式笔记 原型模式

原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节. 基本类型与引用类型的区别于关系在efficient java. http://www.cnblogs.com/linkarl/p/4785329.html 浅复制:对象的引用仍然指向原来的对象 深复制:把引用对象的变量指向复制过的新对象 我认为一般深复制比较常用. package prototype; public

大话设计模式笔记 代理模式

代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. package proxy; /* * Subject Class,the common interface of RealSubject and Proxy, */ public abstract class Subject { public abstract void Request(); } package proxy; //represent the real entity public class RealSubj

大话设计模式笔记 组合模式 迭代模式 单例模式

组合模式(Composite),将对象组合合成树形以表示“部门整体”的层次结构.组合模式使得用户对单个对象和组合对象的使用具有一致性. 一句话说就是利用树这种数据结构储存对象. 迭代模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示. 数据结构内容. 单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问他的 全局访问点. efficient java 中已经详细介绍了

大话设计模式笔记 工厂模式

package sampleFactory; public interface IFactory { Operation createOperation(); } package sampleFactory; public class AddFactory implements IFactory { @Override public Operation createOperation() { return new OperationAdd(); } public static void main

大话设计模式笔记 状态模式(不推荐) 适配器模式

状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当一个对象状态转换的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化. 说实话这模式用起来好费劲,起到的作用也不是很大. 适配器(Adapter),将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作. 如果能先事先预防接口不同的问题,不匹配问题就不会发生; 在

大话设计模式笔记 备忘录模式

备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态. package Memento; //发起人 public class Originator { //记录此刻内部状态 private String state; public String getState() { return state; } public void setState(String state) { t