`
beisicao
  • 浏览: 65887 次
  • 性别: 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();

}
分享到:
评论

相关推荐

    研磨设计模式-陈臣.epub

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

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

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

    head first 设计模式

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

    Head First设计模式 中文 高清

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

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

    run()方法,这是一个汇总方法,一个模型生产成功了,总要拿给客户检测,run()方法就是一种检验方法,让它跑起来,通过run()方法,把所有功能都测试到了。

    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这种很...

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

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

    ActionScript 3.0设计模式扫描版_方红琴译

    第1章 面向对象程序设计、设计模式和ActionScript 3.0 成功之后的喜悦 OOP基础 抽象 封装 继承 多态性 使用设计模式进行软件开发的原则 使用接口而不是具体的实现 养成使用组合的习惯 计划项目时要同时...

    java设计模式

    目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式

    远程抄表与监控模拟系统(采用策略模式、模板方法模式实现)

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

    基于Android的MVP模型良好的架构设计模板

    这是一个Android MVP模型良好的架构设计,同时也做了Android和HTML 5交互架构,用到了RxJava+Retrofit+MVP+泛型缩减mvp+模板模式+命令模式+观察者模式+管理者模式 +简单工厂模式

    Django的MVT设计模式(Model-View-Template)示例代码

    如果要开发一个好的网站或网络应用,就必需了解经典的软件开发所遵循的MVC 设计模式。本篇详细总结软件开发所遵循的MVC...Django Model(模型), URL(链接), View(视图) 和Template(模板)又是如何遵循MVC软件设计模式的。

    分析模式:可复用的对象模型(清晰扫瞄版)

    第1章 绪论   1.1 概念模型  ... 第14章 类别模型模式——设计模板   第15章 关联模式   第16章 后记   第3部分 附录 附录A 技术和符号   参考书目  附录B 模式表  索引  附注

    经典Java23种设计模式.rar

    设计模式就是在工作中经常遇到的一类问题的解决方案,是一种解决问题的方法,更是一种思想,是智慧的结晶。 设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。 Java的23种设计模式 构成...

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

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

    C#23种设计模式_示例源代码及PDF

    多 迭代子模式 个对象聚在一起形成的总体称之为聚集, 聚集对象是能够包容一组对象的容器对象。 迭代 子 模式将迭代逻辑封装到一个独立的子对象中, 从而与聚集本身隔开。 迭代子模式简化了聚集 的界面。每一个聚集...

    spring中的基本设计模式

    本资源是spring的小例子程序,共包括以下7个: ...模型视图控制器模式(MVC) 代理模式(proxy) 单例模式(singleton) 策略模式(strategy) 模板模式(template) 另外还有一个关于动态代理的小例子

    掌握Spring设计模式:Java工程师必备指南

    作为一个资深Java工程师,我发现《Spring 设计模式总结》PDF非常精彩,它深入剖析了Spring框架中的关键设计模式。例如,简单工厂模式通过BeanFactory展现,实现了松耦合和动态对象创建。工厂方法模式则通过...

    OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码

    OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码《Objective-C编程之道:iOS设计模式解析》是基于iOS的软件开发指南。书中应用GoF的经典设计模式,介绍了如何在代码中应用创建型模式、结构型模式和行为模式,...

Global site tag (gtag.js) - Google Analytics