随笔分类 - 设计模式
职责链模式——C++实现
摘要:问题描述: 某物资管理系统中物资采购需要分级审批,主任可以审批1万元及以下的采购单,部门经理可以审批5万元及以下的采购单,副总经理可以审批10万元及以下的采购单,总经理可以审批20万元及以下的采购单,20万元以上的采购单需要开职工大会确定。现用职责链模式设计该系统。 类图: C++代码: #incl
阅读全文
代理模式——C++实现
摘要:问题描述: 婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。 类图 C++代码: #include<iostream> using namespace std; class Peopl
阅读全文
代理模式——java实现
摘要:问题描述: 婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。 类图 Java代码: //People.java package shiyan14; public interface P
阅读全文
享元模式——C++实现
摘要:问题描述: 设计一个围棋软件,在系统中只存在一个白棋对象和一个黑棋对象,但是它们可以在棋盘的不同位置显示多次。 类图: C++代码: #include<iostream> using namespace std; #include<String> #include<vector> //棋子颜色 en
阅读全文
享元模式——java实现
摘要:问题描述: 设计一个围棋软件,在系统中只存在一个白棋对象和一个黑棋对象,但是它们可以在棋盘的不同位置显示多次。 类图: Java代码: 1 //Coordinates.java 2 package shiyan13; 3 //外部状态类——坐标类 4 class Coordinates { 5 6
阅读全文
外观模式——C++实现
摘要:问题描述: 在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法 ,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load()),如果某一
阅读全文
外观模式——Java实现
摘要:问题描述: 在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法 ,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load()),如果某一
阅读全文
装饰模式——C++实现
摘要:问题描述: 用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。 类图: C++源代码: #include <iostream> #in
阅读全文
装饰模式——java实现
摘要:问题描述: 用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。 类图: Java源代码: //Phone.java package s
阅读全文
组合模式——C++实现
摘要:问题描述: 用透明组合模式实现教材中的“文件夹浏览”这个例子。 类图: C++代码: #include <iostream> #include <string> #include<list> using namespace std; class AbstractFile { public: virt
阅读全文
组合模式——java实现
摘要:问题描述: 用透明组合模式实现教材中的“文件夹浏览”这个例子。 类图: java代码: 1 //AbstractFile.java 2 package shiyan10; 3 4 public abstract class AbstractFile 5 { 6 public abstract voi
阅读全文
桥接模式——C++实现
摘要:问题描述: 用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。 类图: C++源代码: #include <iostream> #include <string> #include<list> using namespace std; class Abstrac
阅读全文
桥接模式——Java实现
摘要:问题描述: 用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。 类图: Java源代码: //Road.java package shiyan9; public abstract class Road { protected Vehicle vehicle; p
阅读全文
适配器模式——C++实现
摘要:问题描述: 实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。 类图: C++代码: #include<iostream> using namespace std; class Cat{ public: virtual void cry()=0; virtual void zhua()=0;
阅读全文
适配器模式——java实现
摘要:问题描述: 实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。 类图: Java代码: //Cat.java package shiyan8; public interface Cat { public void cry(); public void zhua(); } //Dag.java
阅读全文
单例模式——C++实现
摘要:问题描述: 使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。 类图: C++源代码: #include<iostream> #include<string> using namespace std;
阅读全文
单例模式——java实现
摘要:问题描述: 使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。 类图: Java源代码: //StudentNo.java package shiyan7; public class StudentNo
阅读全文
原型模式——C++实现
摘要:问题描述: 向量的原型 用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。 类图: 浅克隆C++代码: #include <iostream> using namespace std; //向量类 class Vector
阅读全文
原型模式——Java实现
摘要:问题描述: 向量的原型 用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。 浅克隆类图: 浅克隆Java代码: 1 //Vector.java 2 package qiankelong; 3 4 import java.u
阅读全文
建造者模式——C++实现
摘要:问题描述: 使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。 类图: C++源代码: #include<iostream> #include<string> using namespace std;
阅读全文
浙公网安备 33010602011771号