Posts Tagged ‘设计模式’

创建类模式比较

July 14th, 2014

创建类模式包括工厂方法模式,建造者模式,抽象工厂模式,单例模式,原型模式,这些都是创建类的design pattern,可以创建class的创建。

单例模式和原型模式比较简单,单例模式主要是在内存中保持一个对象,原型模式是指通过复制的方式产生新的对象。

比较容易混淆的是工厂模式,抽象工厂模式和建造者模式。 » Read more: 创建类模式比较

享元模式 C++实现

June 20th, 2014

享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例数据除了几个参数外基本都是相同的。有时就能够大幅度地减少实例化的类的数量。如果能把那些参数移到类实例的外面,在方法调用时将它们传递进来,就可以通过共享大幅度地减少单个实例的数目。

» Read more: 享元模式 C++实现

桥梁模式 C++实现

June 19th, 2014

桥梁模式主要解决多层继承,比如我们可以想想,人可以分为男人女人,人又有不同的行为。如果把这个两个class继承,也就意味着是男人行为A,男人行为B。女人行为A,女人行为B。
这种方式非常难以扩展,所以桥梁模式派上用场,它将表示和实现解耦,两者可以独立的变化。

其中这种模式又有一些像策略模式,又有一些像建造者模式。当我们考虑一个对象的多个变化因素可以动态变化的时候,考虑使用桥接模式
» Read more: 桥梁模式 C++实现

访问者模式 C++实现

June 17th, 2014

访问者模式,顾名思义就是使用vistor类来访问其他类的intern数据,而不改变intern的数据结构和代码。
这样可以分开数据显示和业务逻辑,使得代码更加清晰。

访问者模式的优点就是:灵活度非常高,有优秀的拓展性。
缺点就是:不依赖抽象元素,违反了依赖倒置的原则,直接依赖实现类,拓展实现类比较难。
» Read more: 访问者模式 C++实现

备忘录模式C++实现

June 12th, 2014

备忘录模式是一种比较重要的设计模式,如果程序执行错误,我们可以恢复restore之前的状态,就好像我们在编辑word文档,需要撤销原操作,那么我们使用ctrl+Z。
在数据库操作中,这个模式用的非常多!

说白了就是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。
» Read more: 备忘录模式C++实现