
设计模式
文章平均质量分 81
一MasonChen
这个作者很懒,什么都没留下…
展开
-
用C++学习设计模式之 简单工厂模式
拿到了《大话设计模式》这本书,从这本书的风格来看,感觉这本书还是非常适合大学教育的。但是对于初学者来讲,C#是不太容易接受的。为了解决这个问题,同时为了提升自己的C++水平以及加深对面向对象的理解,笔者决定用C++学习一下这本书。运算类头文件#ifndef OPERATION_H #define OPERATION_H class Operation { public:原创 2015-02-08 12:16:51 · 541 阅读 · 0 评论 -
设计模式学习之代理模式
考虑实现一个订单系统: 一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人则不能修改。 三个属性:产品名称、订购数量、订购人 public interface OrderAPI { public String getProductionName() ;//得到产品名称 public void setProductionName(String productionNam原创 2015-05-25 21:14:19 · 523 阅读 · 0 评论 -
设计模式学习之策略模式:报价管理系统
一个报价管理系统 在一些CRM(客户关系管理)系统中,会有一个单独的报价管理模块,处理复杂的报价功能 普通客户:全价 老客户:根据年限,给予折扣 大客户:根据累计消费,给予折扣 客户购买量:对于新老客户都适用 报价人员职位高低: 如何实现???? 一个支付策略的接口 package com.cmc; //一个报价接口类,提供报价的接口,传入的参数为钱数 pub原创 2015-05-30 19:11:37 · 926 阅读 · 0 评论 -
设计模式学习之观察者模式
场景: 演示注册的投资者在股票市场发生变化时,可以自动得到通知 股民类,包含对股票的走势做出反应的方法: package com.cmc; class Observer {//观察者类,股民观察股票走势,所以就是股民类 private String name; public Observer(String name) { this.name = na原创 2015-05-31 21:41:19 · 831 阅读 · 0 评论 -
设计模式学习之策略模式:容错恢复机制
容错恢复机制 应用程序开发中常见的功能 程序运行的时候,正常情况下应该按某种方式来做,如果按照某种方式来做发生错误的话,系统并不会崩溃,而是继续运行,能提供出错后的备用方案。 日志记录的例子 把日志记录到数据库和日志记录到文件当做两种记录日志的策略 日志记录的策略接口: package com.cmc; public interface LogStrategy {原创 2015-05-30 19:35:25 · 764 阅读 · 0 评论 -
设计模式学习之状态模式:请假流程
工作流中的请假流程 某人提出请假申请,先由项目经理审批,如果项目经理不同意,审批就直接结束 如项目经理同意,再看是否超过3天,如果三天以内,审批直接结束 否则,交给部门经理,部门经理审核后,无论是否同意,审批直接结束 状态类 package com.cmc; public abstract class State { public abstract void sh原创 2015-06-01 20:12:08 · 2290 阅读 · 0 评论 -
设计模式学习之简单工厂+反射+配置文件
3.用反射+配置文件的方法重新实现大话设计模式课本上15章15.7的例题 问题分析:相比抽象工厂,用DataAccess类代替了工厂接口以及工厂类,再加上使用反射+配置文件的方式,可以做到不对编译好的程序作出改变就能修改数据库种类,客户端可以只是用DateAccess进行数据库访问实例的创建,达到了解耦的目的。 UML图: package com.cmc; //用户数据类 public cl原创 2015-06-23 14:16:37 · 2137 阅读 · 0 评论 -
设计模式学习之装饰模式:IO流的装饰器
IO流的装饰器 题目分析:通过对java的io系列类分析得知,java的io流使用了设计模式中的装饰模式,以动态的给一个对象增加职责,能够更加灵活的增加功能。通过看io的源代码得知FilterOutputStream类继承了OutputStream类并拥有父类的一个对象,它和父类具有组合聚合的关系。因此要实现我们自己的加密类只需扩展FilterOutputStream类重写它的wite方法即可原创 2015-06-23 14:07:04 · 3159 阅读 · 0 评论 -
设计模式学习之备忘录模式:象棋中“悔棋”操作
题目分析:备忘录模式的定义是捕获一个对象的内部状态并在该对象之外保存这个内部状态。从这个模式的定义可知我们需要一个类随时对目标对象的保存和创建进行管理,这个类就是Origintor(发起人)类,同时也用它对当前的状态进行管理,以便随时保存。然后需要一个类CareTaker负责保存好备忘录。 UML图: package com.cmc; //棋子类,负责记录当前是哪个棋子以及棋子在棋盘上的位原创 2015-06-23 14:11:31 · 3842 阅读 · 1 评论