C++设计模式之Composite(组合)模式
组合模式是一个很有意思的模式。 它的特征在于自身和自身的组合 —— 我们可以先想象有这么一个对象,它是一个集合(可以是数组或链表或其他的容器),它内部的子对象和它是同一个类型的对象。 恩,想象到这里就够了,这就是一个组合模...
组合模式是一个很有意思的模式。 它的特征在于自身和自身的组合 —— 我们可以先想象有这么一个对象,它是一个集合(可以是数组或链表或其他的容器),它内部的子对象和它是同一个类型的对象。 恩,想象到这里就够了,这就是一个组合模...
当我们面临两个相互独立的变化作用到同一个逻辑对象上时,往往会导致设计的尴尬局面。 比如说,当我们要抽象“服装”这个概念,我们会得到如“衣服”、“裤子”、“帽子”的样式分类方式,同样也会得到如“绿色”、“红色”、“彩色”的颜色分类方式...
很多时候,我们需要对一个已有的类做接口上的调整,如新的业务需要对已有的业务进行组合,或者新的模块需要使用现有的功能却不接收现有接口的调用形式... 在这种时候,我们需要有种可以将两套完全不同的接口标准统一的方法.适配器模式就是...
当我们需要创建一种类型的对象时,可以用工厂模式;当对象的局部容易发生变化时,我们有建造者模式.但当我们有大量的对象类型,或者对象类型不易知道时,我们如何根据已有的一个对象快速构建新的对象呢? 我们需要一个可以封装掉不同种类对...
我们可能会遇到这种情况,比如一个配置文件读取模块,它由几个小模块组成,每个小模块负责读取一种类型的配置.我们读取配置的顺序和过程是固定的,但是每个配置类型可能会因为业务的需求发生很多变化. 这个过程和造房子有点像.每栋楼的建...
设计模式作为一组抽象的设计思想,肯定有一些基本的原则.否则的话,任何设计都可以称之为"良好设计"的一种了. 在设计模式中,也有整体"不允许"和"需要遵循"的方方面面.只要遵循了下面这些基本思想,写出来的设计往往都是很优秀的设计.
工厂模式一般是学习设计模式的第一课,它本身也是创建型模式中较为常用的一种模式. 工厂模式希望解决的是"如何高效而方便的创建当前需要的对象"的问题.当一个对象对外提供的接口稳定,而这类对象的具体实现容易发生变化时,我们可以考虑...
单例模式,顾名思义,此模式下的对象实例永远只有一个.很多初学者感觉这个模式的用处不大.但实际上,这个模式的应用非常广泛. 很多情况下,我们会很自然的使用单例的方式来实现功能,如全局内存池;全局资源管理器;某个全局的工具类工厂......
我个人接触设计模式的时间较晚,将它们应用在实际项目中也就这一两年的时间.当时为了快速的学习掌握设计模式,除了参考GoF的<设计模式>之外,还在网上参看了TerryLee的.NET设计模式系列文章,以及程杰的<大话设计模式>,并利用...