TemplateMethod(模块方法模式)

/**
 * 模块模式
 * @author TMAC-J
 * 将一个完整的算法分离,分成不同的模块
 * 用于有很多步骤的时候,可能以后这些步骤还会增加,把这些步骤分离
 * 将有共性的部分放在抽象类中
 * 避免代码重复
 * 有利于算法扩展
 * 假设这个算法是人,人具有的共性是早上起来穿衣服,吃饭,工作
 */
public class TemplateMethod {

    abstract class Person{

        abstract void dressup();

        abstract void eat();

        abstract void work();

         public void operate(){
             dressup();
             eat();
             work();
         } 

    }

    public class Teacher extends Person{

        @Override
        void dressup() {
            System.out.println("穿衣");
        }

        @Override
        void eat() {
            System.out.println("吃饭");
        }

        @Override
        void work() {
            System.out.println("工作");
        }
        //老师独有的备课环节,扩展了这个步骤
        public void prepare(){
            System.out.println("备课");
        }

    }

    public class Student extends Person{

        @Override
        void dressup() {
            System.out.println("穿衣");
        }

        @Override
        void eat() {
            System.out.println("吃饭");
        }

        @Override
        void work() {
            System.out.println("工作");
        }

    }

    public void test(){
        Person teather = new Teacher();
        teather.operate();
        Person student = new Student();
        student.operate();
    }

}
时间: 2024-10-07 05:29:28

TemplateMethod(模块方法模式)的相关文章

Java设计模式—工厂方法模式&抽象工厂模式

工厂方法模式与抽象工厂模式都是设计模式中重要而且常见的模式.       工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 通用类图如下: 在工厂方法模式中,抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义:Creator为抽象创建 类,也就是抽象工厂,具体如何创建产品类是由具体的实现工厂ConcreteCreator完成的. 工厂方法模式的扩展方式有很多种,下边是工厂方法模式一个比较实用的源代码: 抽象产品类: pub

Java设计模式の模版方法模式

概述 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.这就是模板方法模式的用意. 比如定义一个操作中的算法的骨架,将步骤延迟到子类中.模板方法使得子类能够不去改变一个算法的结构即可重定义算法的某些特定步骤. 模式中的角色 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架. 具体类(ConcreteClass):实

设计模式之行为型模式—— 3.6 模版方法模式

<?php /**  * 3.6 模版方法模式  *  定义:  *  定义一个操作中的算法的骨架,而将一些步骤延  *  迟到子类中.模版方法是的子类可以不改变一个  *  算法的结构即可重定义该算法的某些特定步骤.  *  角色:  *  1. 抽象模版方法类  *  职责:定义并实现了一个模版方法.这个模  *    版方法一般是一个具体方法,它给出  *    了一个顶级逻辑的骨架,而逻辑的组  *    成步骤在相应的抽象操作中,推迟到  *    子类实现.顶级逻辑也有可能调用一  

第4章 创建型模式—工厂方法模式(2)

2. 工厂方法模式 2.1工厂方法模式的定义 (1)定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂模式使一个类的实例化延迟到其子类 ①Product:定义了工厂方法创建对象的接口.也就是实际需要使用的产品对象的接口 ②ConcreteProduct:具体的Product接口的实现对象. ③Factory(Creator):定义了工厂方法的抽象类并返回一个产品对象. ④ConcreteCreator:具体的创建器对象,该类实现和覆盖了父工厂类声明的方法.返回一个具体的Product实例

2.工厂方法模式

1.定义 Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory method let a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类.) 2.通用源码 /// <summary> /// 抽象产品类 /// <

设计模式(二)---工厂方法模式

project方法模式 定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 我的理解:工厂方法模式不是通过newkeyword来创建对象的.而是通过工厂接口提供的方法来创建其它对象. 工厂设计模式,在开发过程中非经常见,以下使用一个样例来引入普遍的工厂设计模式. 一个加工厂商加工不同的产品. Product类.抽象类,表示不同的产品. FoodProduct类,继承Product类,并实现其抽象方法. FruitProduct类,继承Product

Java 设计模式(四)-工厂方法模式 (FactoryMethod Pattern)

1     概念定义 1.1   定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 1.2   类型 创建类模式 2     原理特征 2.1   类图 2.2   优点 1)封装性良好,代码结构清晰 2)可拓展性高,只需修改一下工厂方法或拓展一个工厂类 3)屏蔽产品类,调用者不需要关心产品类的变化 4)高度解耦,高层模块只需知道产品抽象类,无需关注实现 2.3   缺点 代码复杂度增加 3     .应用拓展 3.1   应用场景 1)    

24种设计模式--模版方法模式【Template Method Pattern】

周三,9:00,我刚刚坐到位置,打开电脑准备开始干活.“小三,小三,叫一下其它同事,到会议室,开会”老大跑过来吼,带着淫笑.还不等大家坐稳,老大就开讲了,“告诉大家一个好消息,昨天终于把牛叉模型公司的口子打开了,要我们做悍马模型,虽然是第一个车辆模型,但是我们有能力,有信心做好,我们一定要…(中间省略 20 分钟的讲话,如果你听过领导人的讲话,这个你应该能够续上)”动员工作做完了,那就开始压任务了,“这次时间是非常紧张的,只有一个星期的时间,小三,你负责在一个星期的时间把这批 10 万车模(注:

设计模式- 简单工厂模式、工厂方法模式及其比较

简单工厂模式及实例 前言工大有许多同学是做java的,大家都知道java最大的优点是它的完全OO化和它在多年的发展过程中吸收和总结了许多先进的框架与模式,其中工厂模式就是最常用的模式之一.下面我想将我在学习和实践过程中对工厂模式的认识与了解介绍给大家.由于笔者能力限制,在实践中也没参与过什么大的项目,笔者参与过的项目用到的工厂模式主要是简单工厂模式(Simple Factory)和工厂方法模式(Factory Method),所以笔者在本文主要介绍的是这两种模式.准备知识在OO设计领域,我们知道