- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 深入模板编程笔记四
template class my_vector {public: T* array; unsigned size; unsigned block_size; public: my_vector(unsigned bsz): array((T*)malloc(sizeof(T)*bsz)),size(0), block_size(bsz){}
2014-11-15 18:09:54
508
原创 深入模板编程笔记三
//函数指针模板templatevoid foreachf(T array[], int size) { for (unsigned i = 0; i < size; ++i) { fun(array[i]); }}templatevoid inc(T &v) { ++v;}templatevoid dec(T &v) { --v;}void main(){
2014-11-14 11:52:50
468
原创 深入模板编程笔记二
//链表templatestruct hetero_node {//effective stl说过,访问数据永远比访问方法快,所以尽量用struct t value; n* next; hetero_node(t const& v, n* n1): value(v), next(n) {}};typedef hetero_node node_0;node_0* p0;typed
2014-11-13 15:05:51
496
原创 设计模式观后(c++还原之二十六 桥梁模式)
//桥梁模式//作者用公司产品来举例,公司类成为桥梁//抽象产品类class Product {public: //产品要被生产和销售 virtual void BeProducted(){} virtual void BeSelled(){}};class House : public Product {public: void BeProducted() { cout
2014-10-06 21:21:14
610
原创 设计模式观后(c++还原之二十五 享元模式)
string int2string(int n) { char buffer[10] = {0}; _itoa_s(n, buffer, 10, 10); return string(buffer);}//享元模式//作者例子:报考系统的对象//每个用户的访问就构造一个对象会导致内存不够,作者设立关键字:多个用户使用一块内存//报考信息class SignInfo {priva
2014-10-05 20:58:55
463
原创 设计模式观后(c++还原之二十四 解释器模式)
//解释器模式//作者示例:输入公式,运算公式(数学的加减法)//抽象表达式类class Expression {public: //key是公式的参数,value是具体的数字 virtual int InterPreter(map var) = 0;};//变量解释器class VarExpression : public Expression {private: char
2014-10-04 22:58:23
463
原创 设计模式观后(c++还原之二十三 状态模式)
//状态模式//首先作者举例是电梯的升降和操作(上升状态的关门、开门、运动等动作判断;下降状态的动作判断)//我第一次想到的是:用四个枚举来表示当前电梯状态,然后动作函数的执行用switch(状态) case(运行)来写。//来看作者的写法吧class Context;//后面的上下文类class OpenningState;//开门类class ClosingState;//关门类
2014-10-02 22:19:04
573
原创 设计模式观后(c++还原之二十二 访问者模式)
//访问者模式class IVisitor;//抽象员工类class Employee {public: const int MALE = 0;//男性 const int FEMALE = 1;//女private: string m_strname; string m_nsalary; int m_nsex;public: virtu
2014-10-01 22:21:39
465
原创 设计模式观后(c++还原之二十一 备忘录模式)
//备忘录模式//就是给发起人等给个备份,好恢复 前面的原型模式刚好可以用上(clone函数)//例子很简单会相对注释//备忘录角色class Originator;class Memento {private: string m_state;public: Memento(string _state) { m_state = _state; } string Get
2014-09-29 23:03:37
446
原创 设计模式观后(c++还原之二十 门面模式)
//门面模式//和字面意思一样,把看似杂乱的东西封装一个好看的门面//作者例子:写信——填写必要信息、封好、检查、邮递、//抽象基类class ILetterProcess {public: virtual void WriteContext(string context) = 0; virtual void FillEnvelope(string address)= 0 ; vi
2014-09-27 21:37:24
540
原创 设计模式观后(c++还原之十九 观察者模式)
//观察者模式//作者示例:李斯派人观察监视韩非子,并报告给秦始皇。//我自己修改了一些//抽象观察者class Observer {public: virtual void Update(string& context){}};//被观察者接口class Observable {public: //增加一个观察者 virtual void AddObserver(Obse
2014-09-27 21:06:45
489
原创 设计模式观后(c++还原之十八 组合模式)
//组合模式//作者这个模式举得例子很有趣:树、根、叶;//用上面的思想要把员工管理组合在一起。//经理添加员工,获取信息。组长添加员工,获取信息等,树结构。//抽象员工接口、(根节点)class ICorp {public: virtual string GetInfo() = 0; virtual int GetType() {return 0;}//获取职位类型0:树叶 1:
2014-09-25 21:33:34
487
原创 设计模式观后(c++还原之十七 迭代器模式)
//迭代器模式//现在已经基本感觉没意思了,感觉每个23钟模式围绕着前面的6个原则设计//只是增加了示例见识,还不见得全记得住。//估计要用的时候才会迅速找到//不说了,要加速23钟模式;快点进入模式混合搭配,才能深刻理解//作者把管理项目信息做了一个迭代器//先抽象基类class ProjectIterator;class IProject {public: virtual
2014-09-24 23:46:13
470
原创 设计模式观后(c++还原之十六 适配器模式)
//适配器模式//这像一个补救模式,类A的接口无法与类C不匹配;便构件一个类B让A与B匹配,B与C匹配。//作者用的示例:人力资源管理//虚化 员工信息接口 类:Aclass IUserInfo {public: virtual string GetUserName() = 0; virtual string GetHomeAddress() = 0; virtual string
2014-09-22 22:31:28
429
原创 设计模式观后(c++还原之十五 策略模式)
using std::map;using std::endl;using std::cout;using std::list;using std::vector;using std::string;//策略模式//这个模式,感觉没啥东西。就是自由切换和避免多重判断//抽象策略角色class Strategy {public: virtual void DoSomething
2014-09-21 23:11:52
492
原创 设计模式观后(c++还原之十四 修饰模式)
//修饰模式//这个是基于类的修饰。作者用父亲看成绩,然后签字来举例//需要对成绩进行修饰才能,让父亲开心,然后签字。//抽象修饰类class SchoolReport {public: SchoolReport(); virtual void Report() {}//家长看报告 virtual void Sign(string name) {}//家长签字};class F
2014-09-20 22:17:00
542
原创 设计模式观后(c++还原之十三 责任链模式)
using std::deque;using std::string;using std::cout;using std::list;//责任链模式//作者参考古代的女子三从四德原则,来举例//分析第一个示例,女子的请示必须是链状的流程,依次走或者continue//抽象基类class IWomen{public: virtual int GetType(){ ret
2014-09-18 23:21:15
449
原创 设计模式观后(c++还原之十一 中介者模式)
//中介者模式//作者举得例子:采购管理类需要库存类和销售类,才能采购//库存类需要采购和销售类才能管理,销售需要库存和采购才能统计。//如此的设计,造成所有的类彼此之间互相依赖!有很大的耦合性(非常错误的选择) 产生中介者模式//先构建抽象中介者class AbstractMediator {protected: Purchase* p_purchase; Sale* p_
2014-09-16 23:21:02
439
原创 设计模式观后(c++还原之十 代理模式)
//代理模式//代理个性,作者增加代理个性(收费接口);书写类。让GamePlayerProxy继承俩个类增加自己个性。class IGamePlayer {};class Iproxy {public: void Count() {cout << "nubmer";}};class GamePlayerProxy : public IGamePlayer, public Iprox
2014-09-15 20:54:41
524
原创 设计模式观后(c++还原之八 建造者模式)
//从前面的知识知道,重复功能函数放基类(视情况)run//车辆模型抽象基类class CarModel {private: deque* m_psequence; protected: virtual void Start() = 0; virtual void Stop() = 0; virtual void Alarm() = 0; v
2014-09-12 21:01:25
466
原创 设计模式观后(c++还原之七 模板方法模式)
//模板方法模式。完全是注意一点:软件开发过程中,如果相同的一段代码复制俩次,//就需要对设计产生怀疑//作者也是用了虚函数的覆盖功能。class HummerModel {protected: virtual void start() {} virtual void stop() {} virtual void alarm() {} virtual voi
2014-09-10 23:17:46
495
原创 设计模式观后(c++还原之六 虚拟工厂)
//抽象工厂模式//首先抽象工厂是工厂的扩展,书中对他的解释是当工厂出现俩个互相影响的产品线//示例;//作者将黄种人派生男人女人(黑种人,白种人一样)//八卦炉基类(工厂类),生产三种人。再派生俩个类,让其生产男人女人。最后场景类调用。//关系就像车的左右门一样class AbstractProductA {public: virtual void ShareMethod()
2014-09-10 08:37:09
638
原创 设计模式观后(c++还原之六 工厂模式)
//人类、女娲示例//感觉meiclass Human {public: virtual void GetColor(){} virtual void Talk(){}};class BlackHuman : public Human {public: virtual void GetColor() { cout << "black "; } virtual void Ta
2014-09-06 17:18:21
479
原创 设计模式观后(c++还原之四 开闭原则 )
// Desinger.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include using std::cout;using std::list;using std::string;//开闭原则 class IBook {
2014-09-05 20:06:05
433
原创 设计模式观后(c++还原之三 接口隔离)
//接口隔离class IPettyGirl {public: virtual void goodLooking(); virtual void niceFigure(); virtual void greatTemperament();};class PettyGirl : public IPettyGirl {private: string m_name;publi
2014-09-04 17:21:58
501
原创 设计模式观后(c++还原 里氏替换原则)
//里氏替换原则1子类完全实现父类的方法2子类可以有自己的个性3覆盖实现父类方法时输入参数可以被放大。//手枪、士兵、场景设计class AbstractGun{public: virtual void shoot() { cout << "kill people!"; }};class HandGun : public AbstractGun{pu
2014-09-04 15:21:15
1098
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人