
设计模式
文章平均质量分 65
tom555cat
这个作者很懒,什么都没留下…
展开
-
设计模式之2迭代器原则
找出具有多重责任的类:设计原则:类的每个责任都有改变的潜在区域。超过一个责任,意味着超过一个改变区域。这个设计原则告诉我们,尽量让每个类保持单一责任。在迭代器模式中,对象集合类不仅要完成自己的事情(管理某种聚合),还要同时承担更多的责任(例如遍历)。这是对象集合类的两个责任,违反了我们的设计原则,所以把其中的一个责任(遍历)委托给了迭代器类。我对这个设计原则和文中的解释的理解为,设原创 2014-03-05 10:33:43 · 704 阅读 · 0 评论 -
抽象工厂模式和工厂方法
一个简单的工厂模式,使用new原创 2014-04-05 19:44:05 · 602 阅读 · 0 评论 -
策略模式
策略模式:定义算法族,分别原创 2014-04-28 16:12:32 · 527 阅读 · 0 评论 -
命令模式
命令模式:将请求封装成对象,原创 2014-04-29 17:15:44 · 607 阅读 · 0 评论 -
装饰者模式
装饰者模式:动态地将责任附加到对象上。原创 2014-04-29 12:03:37 · 481 阅读 · 0 评论 -
pthread_once单例模式
在陈硕的《Linux多线程服务端编程》上的使用pthread_once实现的单例模式templateclass Singleton : boost::noncopyable{public: static T& instance(){ pthread_once(&once_, &Singleton::init); return *valu原创 2014-04-03 18:08:36 · 4040 阅读 · 0 评论 -
解析一个单例模式
该单例模式的例子来自《》原创 2014-04-04 16:23:17 · 594 阅读 · 0 评论 -
reactor模式
Reactor的框架有5个关键部分:1》原创 2014-04-30 11:39:40 · 793 阅读 · 0 评论 -
适配器模式
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器原创 2014-04-29 12:50:59 · 510 阅读 · 0 评论 -
使用C++写抽象工厂模式涉及到的一些问题
代码是摘自《C++高级编程第二版》具体类图如下:代码如下:汽车类:#include class Car{public: virtual void info() = 0;};class Ford : public Car{public: virtual void info() { std::cout<< "Ford" << std::endl; }};原创 2014-03-09 17:20:40 · 766 阅读 · 0 评论 -
设计模式
阅读了《深入浅出设计模式》中的工厂模式一章,进行一些总结。1.先总结工厂方法模式(Factory Method Pattern)定义:工厂方法模式定义了创建对象的接口(或是一个abstract类),但是让接口的子类去决定实例化哪一个子类。工厂方法模式使类的实例化推迟到了子类。原创 2014-02-26 20:53:22 · 593 阅读 · 0 评论 -
组合模式
组合模式其实就是一个树状结构,其中有点包含组合,有的点就是叶子。组合模式中定义了一个包含了组合和叶子的抽象类,由于我们在使用时组合和叶子都继承了这个抽象类,所以为了避免叶子类使用了组合的方法,抽象类中的每一个方法都抛出一个异常。所以叶子子类重新定义了与自己相关的方法,组合子类重新定义了与自己相关的方法。如果它们调用了和自己不相关的方法,则抛出异常。组合模式中的抽象类有两个责任,一个是叶子责原创 2014-03-05 16:34:50 · 598 阅读 · 0 评论 -
C++容器的实现
现在的面试经常问到vector或queue怎么实现,好烦啊。由于刚刚看了迭代器设计模式一文,文中讲解了Java Collection Framework的框架,它们都实现了下面这个接口:所以,可以依靠这个接口实现我们自己的C++的容器类,有时间一定试一试,顺便与STL做一些比较。具体拿出其中的一个方法,比如iterator()方法来阐述一下如何实现。首先我们定义一个Iterat原创 2014-03-05 15:03:11 · 690 阅读 · 0 评论 -
观察者模式
观察者模式包含主题和观察者两个部分。原创 2017-05-31 10:34:36 · 440 阅读 · 0 评论