设计模式主要分三个类型:创建型、结构型和行为型。 其中创建型有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二、Abstract Factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。 三、...
分类:
移动开发 时间:
2015-07-07 22:43:07
阅读次数:
257
今天在mongoDB存取对象数据的时候,碰到一个小问题:对象的某一个字段类型是抽象类或者接口,在存入的时候没有问题,但是在读取的时候,由于没有具体类的信息,无法完成对象的重新构建,就会报错:
Can not construct instance of com.bp.samples.json.generics.xxx,
problem: abstract types either need to...
分类:
数据库 时间:
2015-07-07 19:40:06
阅读次数:
265
为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中....
分类:
其他好文 时间:
2015-07-07 19:11:15
阅读次数:
93
模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。先看类模板:templateclass Test{publi...
分类:
其他好文 时间:
2015-07-07 16:21:53
阅读次数:
147
工厂模式属于创建型设计模式(Creational Patterns),实现了“工厂”概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。”
创建一个对象常常需要复杂的过程,所以不适合包含在一个复合对象中。创建对象可能会导致...
分类:
其他好文 时间:
2015-07-06 18:06:40
阅读次数:
175
// 模版是抽象的 => 需要给出具体类型
// 模板类(本身就是类型化的)=>具体的类=>定义具体的变量
// 从模板类派生的普通类
// 模板类派生时,需要具体化模板类,C++编译器需要知道,父类的数据类型是什么样子的
// 要知道父类所占的内存大小是多少,只有数据类型固定下来,才知道如何分配内存...
分类:
其他好文 时间:
2015-07-03 14:11:27
阅读次数:
102
思考:为什么函数模板可以和函数重载放在一块。C++编译器是如何提供函数模板机制的?
总结:函数模版机制结论:
编译器并不是把函数模版处理成能够处理任意类的函数;
编译器从函数模版通过具体类型产生不同的函数;
编译器会对函数模版进行两次编译:在声明的地方对模版代码本身进行编译,在调用的地方对参数替换后的代码进行编译。...
分类:
编程语言 时间:
2015-07-03 10:38:42
阅读次数:
181
需求已经在上图:下面是分析与代码:/* 教练和运动员案例(学生分析然后讲解) 乒乓球运动员和篮球运动员。 乒乓球教练和篮球教练。 为了出国交流,跟乒乓球相关的人员都需要学习英语。 请用所学知识: 分析,这个案例中有哪些抽象类,哪些接口,哪些具体类。 整个分析过程,我是通过画图讲解的。 *...
分类:
其他好文 时间:
2015-06-26 23:38:00
阅读次数:
126
Java设计模式-代理模式之动态代理(附源码分析)
动态代理概念及类图
上一篇中介绍了静态代理,动态代理跟静态代理一个最大的区别就是:动态代理是在运行时刻动态的创建出代理类及其对象。上篇中的静态代理是在编译的时候就确定了代理类具体类型,如果有多个类需要代理,那么就得创建多个。还有一点,如果Subject中新增了一个方法,那么对应的实现接口的类中也要相...
分类:
编程语言 时间:
2015-06-26 18:05:54
阅读次数:
200
桥接模式:
将抽象部分和它的实现部分相分离开来,以使它们可以单独地变化。UML图:
主要包括:
Abstraction:定义了抽象部分的接口,操作一个实现部分对象的引用。
RefinedAbstraction:继承自抽象部分的类。
Implementor:实现部分的接口。
ConcreteImplementor:实现了Implementor定义的接口的具体类。
C++代码如下:#include...
分类:
其他好文 时间:
2015-06-25 00:10:26
阅读次数:
185