设计模式
okiwilldoit
这个作者很懒,什么都没留下…
展开
-
C++反射机制的实现
如何通过类的名称字符串来生成类的对象。比如有一个类ClassA,那么如何通过类名称字符串”ClassA”来生成类的对象呢?反射机制就是程序在运行的过程中,可以通过类名称创建对象,并获取类中申明的成员变量和方法。Java中有天然的反射机制,因为Java本身就是半编译语言,很多东西可以在运行时来做,但是c++就不同了。要建立c++的反射机制,就需要登记每个类名与 创建类实例的回调函数 的对应关系。主要用工厂模式和一个的宏注册函数来实现。实现代码如下所示:class_factory.h#include原创 2020-06-11 14:28:27 · 322 阅读 · 0 评论 -
观察者模式
案例:观察者Observer对被观察者Observered进行监控,一旦被观察者发生变化,观察者发出提示1.写观察者接口和类,一个接口IObserver和实现这个接口的Observer的类。接口有一个方法:doSth(),表明观察者发现被观察者发生变化时,就发出提示public interface IObserver { public void doSth();}public c原创 2014-01-17 16:52:58 · 556 阅读 · 0 评论 -
设计模式——结构型模式(包含7种)
结构型设计模式是从程序的结构上解决模块之间的耦合问题。包括以下七种模式:1.Adapte适配器模式:Adapter模式通过类的继承或者对象的组合侧重于转换已有的接口,类适配器采用“多继承”的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用“对象组合”的方式,更符合松耦合精神。 例如:笔记本 电源适配器,可以将220v转化为适合笔记本使用的电压。2.Brid转载 2014-04-20 11:01:11 · 690 阅读 · 0 评论 -
责任链模式
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。原创 2014-08-07 11:23:15 · 571 阅读 · 0 评论 -
工厂设计模式
工厂设计模式提供了一个共同的接口来指向新创建的对象,避免用new创建对象。优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。一. 简单工厂模式每新增一个产品,就要修改工厂类,本质还是用new创建对象。interface Fruit { public void原创 2017-02-28 16:32:36 · 293 阅读 · 0 评论 -
代理模式及Java动态代理
以老板和秘书之间的代理关系,处理事务,秘书作为老板的代理人,可以接电话。1.首先写一个Handle接口,接口里有一个方法:接电话public interface Handle { public void answerPhone(); }2.分别创建两个类:老板类和秘书类,都实现了Handle接口2.1老板类重写了接电话的方法public class Boss implement原创 2014-01-17 16:41:10 · 582 阅读 · 0 评论 -
面试题2:实现单例模式
单例模式的三个特点:1,该类只有一个实例2,该类自行创建该实例(在该类内部创建自身的实例对象)3,向整个系统公开这个实例接口根据以上特点,实现单例模式的方法是:(1)私有构造函数(private)(2)私有静态成员变量(private,static)(3)公有静态函数(public,static getInstance())两种形式:饿汉式单例类,懒汉式单例类懒汉...原创 2014-01-18 19:38:58 · 635 阅读 · 0 评论