`
beisicao
  • 浏览: 66595 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

设计模式之模板模型

阅读更多
package TemplateModel;

/**
* 模板模型使得子类可以在不改变一个算法结构的前提下,
* 重定义该算法的某些特定的步骤
* 此模式一般适用以下情况:
* 1、一次性实现一个业务(算法)不变的部分,将其可变的行为留给子类去实现
* 2、将各个子类通用的公共的行为提取出来,集中到一个公共父类中以避免代码重复
* @author Administrator
* 例如:以一个简单的购物处理业务为例,业务是根据物品的单价和数量,算出总价,
* 检查客户账户是否有足够的余额购买,若余额不足,终止交易;否则,就进行交易从
* 客户账户扣除商品的价格。
*
* 现在此抽象类的实现类只需要实现整个购物逻辑中的特定几个子方法就可以了
* 子类集中于实现基本的操作,把抽象方法定义成protected的目的是:
* 让客户调用看不到,从而不必关心具体实现细节
*/
public abstract class IShopping {

/**
* 因为总的业务逻辑不变,定义一个final方法,以便这个工作逻辑不被
* 其他子类更改
* @param c 客户
* @param price 单价
* @param num 数量
*/
public final void buyOrder(Customer c,float price,int num){
float total = price*num;
if(checkBalance(c,total)){
float money = deduct(c,total);
System.out.println("客户:"+c.getName()+"购买成功,余额:"+money);
}else
System.out.println("客户:"+c.getName()+"余额不足!");
log();
}

/**
* 检查客户余额
*/
protected abstract boolean checkBalance(Customer c,float total);

/**
* 扣除款项
*/
protected abstract float deduct(Customer c,float total);

/**
* 记录购物清单
*/
protected abstract void log();

}
分享到:
评论

相关推荐

    15 把设计模式和模型联系起来 237-246.rar

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板。这些模式在不同的项目中被反复使用,以提高代码的可读性、可维护性和可复用性。模型,另一方面,通常指的是对现实世界或系统行为的抽象...

    mvc设计模式和模板模式ppt

    综上所述,MVC模式和模板模式都是在软件开发中广泛应用的设计模式,它们各自解决了特定的设计问题。MVC模式通过分离关注点提高了应用程序的灵活性和可维护性,而模板模式则通过封装变化点来增强代码的复用性。在实际...

    Java设计模式之模板方法模式.docx

    模板方法模式是一种行为设计模式,它允许在抽象类中定义算法框架,而将具体步骤的实现推迟到子类中。这种模式通常用于那些算法的骨架已经固定,但部分步骤可以根据具体环境有所不同的情况。 在Java中,模板方法模式...

    深入探索c++对象模型 设计模式c++ pdf

    《深入探索C++对象模型》是一本深度剖析C++编程语言内部机制的著作,而设计模式则是软件工程中的一种最佳实践,是解决常见问题的模板。这两者结合在一起,为开发者提供了理解C++如何实现面向对象特性以及如何高效地...

    研磨设计模式-陈臣.epub

    按照上面的理解,设计模式指的就是设计方面的模板,也即设计方面的方式或方法。 设计模式:是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。 1.设计模式是解决方案 根据上...

    远程抄表与监控仿真系统(Version 1.5,采用策略模式、工厂模式、模板方法模式实现)

    模型层的设计采用了设计模式中的模板方法模式;处理层的设计采用了设计模式中的策略模式、模板方法模式和工厂模式。 Server端和Client端的实现也采用了分层的设计方式,包含自定义的模型层、视图层和控制层。 说明:...

    C++设计模式--基于Qt4开源跨平台开发框架

    设计模式是软件工程中的重要概念,它们是经过时间和实践验证的解决特定问题的模板,能够提升代码的可读性、可维护性和复用性。而Qt4作为一个强大的开源库,提供了丰富的功能,使得开发者能够在多个操作系统上构建...

    经典的设计模式的书籍 <<设计模式>>

    《设计模式》一书还探讨了其他重要模式,如单例模式(Singleton)、建造者模式(Builder)、观察者模式(Observer)、装饰器模式(Decorator)、代理模式(Proxy)、享元模式(Flyweight)、桥接模式(Bridge)、...

    head first 设计模式

    1 设计模式入门 欢迎来到设计模式世界 2 观察者模式 让你的对象知悉现况 3 装饰者模式 装饰对象 4 工厂模式 烘烤OO的精华 5 单件模式 独一无二的对象 6 命令模式 封装调用 7 适配器模式与外观模式 随遇模式 8 模板...

    J2ee设计模式.pdf

    在Web应用程序中,模型-视图-控制器(MVC)模式是应用最为广泛的设计模式之一,它将应用分为三个主要部分:模型(Model)负责数据和业务逻辑,视图(View)负责显示数据,控制器(Controller)负责接收输入并调用...

    软件设计模式与体系结构(4)多种模式的代码.rar

    首先,设计模式是经过验证的、解决常见软件设计问题的模板或最佳实践。这些模式源于经验,是开发者们在长期实践中总结出的通用解决方案。在“软件设计模式与体系结构(4)多种模式的代码”中,我们可能找到以下几种...

    Qt设计模式(中英双语),附带源码

    设计模式是软件工程中经过实践证明的有效解决方案模板,用于解决常见的编程问题。本资料集合了Qt设计模式的中英双语解析,旨在帮助中级开发者进一步提升在Qt框架下的编程技能。 **设计模式的基本概念** 设计模式是...

    Head First设计模式 中文 高清

    1 设计模式入门 欢迎来到设计模式世界 2 观察者模式 让你的对象知悉现况 3 装饰者模式 装饰对象 4 工厂模式 烘烤OO的精华 5 单件模式 独一无二的对象 6 命令模式 封装调用 7 适配器模式与外观模式 随遇模式 8 模板...

    设计模式_源代码大全.zip

    设计模式_源代码大全.zip 包括:1.简单工厂模式 2.策略模式 3.装饰模式 4.代理模式 5.工厂方法模式 6.原型模式 7.模板方法模型 8.外观模式 9.建造者模式 10.观察者模式 11.抽象工厂模式 12.状态模式 13.适配器模式 ...

    ASP.NET设计模式-杨明军译(源码)

    2.1.1 GoF模式模板 2.1.2 简化模板 2.2 设计模式分组 2.2.1 创建型 2.2.2 结构型 2.2.3 行为型 2.3 如何选择和运用设计模式 2.4 快速模式示例 2.4.1 根据设计原则进行重构 2.4.2 根据Adapter模式进行重构 ...

    PHP设计模式(chm版)

    这本书的 独特之处在于介绍了一些我认为对开发动态WEB应用程序很有帮助的设计模式,而且用PHP语言显示了如何实现这些设计模式。 面对对象编程OOP 这本书一个优点就是所有的观点都是基于OOP这种很...

    设计模式那点事

    在编程领域,设计模式是解决常见问题的经过验证的可重用解决方案,它们代表了软件设计中的最佳实践。本文将深入探讨"设计模式那点事",特别关注Java中的MVC(Model-View-Controller)架构模式。我们将讨论 MVC 底层...

    Head First(Design Patterns) 设计模式英文原版

     1设计模式入门欢迎来到设计模式世界  2观察者模式让你的对象知悉现况  3装饰者模式装饰对象  4工厂模式烘烤OO的精华  5单件模式独一无二的对象  6命令模式封装调用  7适配器模式与外观模式随遇...

    w3school 设计模式教程 飞龙整理 20141001

    设计模式是软件开发中的一种重要概念,它代表了在实践中被广泛接受并验证过的最佳解决方案。这些模式源于实际开发过程中的常见问题,旨在提高代码的重用性、可读性和可维护性。W3School 设计模式教程由飞龙整理,...

    设计模式demo

    标签“安卓设计模式”进一步确认了这个压缩包内容与Android开发相关的设计模式有关,可能包含特定于Android平台的模式,如 MVC(模型-视图-控制器)、MVP(模型-视图- presenter)或MVVM(模型-视图-ViewModel),...

Global site tag (gtag.js) - Google Analytics