100分求用c++举例说明下设计模式中的观察着模式和命令模式(最好能举个有代表性的的例子,不用很复杂,一个例子 50分)解决办法

100分求用c++举例说明下设计模式中的观察着模式和命令模式(最好能举个有代表性的的例子,不用很复杂,一个例子 50分)
如题

------解决方案--------------------
这个我不懂
帮你顶一顶
------解决方案--------------------
command最经典的就是画图程序的那个例子了。。
支持 do、 undo操作
------解决方案--------------------
观察者模式 就是一个被观察者触发一个消息想让观察者调用某个方法。
------解决方案--------------------
设计模式精解-GoF23种设计模式解析附C++实现

你下载一份这个文档看看
------解决方案--------------------
百度||bing||google
------解决方案--------------------
Observer.h
C/C++ code
#ifndef OBSERVER_H
#define OBSERVER_H

#include <list>

typedef int STATE;

class Observer;

// Subject抽象基类,只需要知道Observer基类的声明就可以了
class Subject
{
public:
    Subject() : m_nSubjectState(-1){}
    virtual ~Subject();

    void Notify();                            // 通知对象改变状态
    void Attach(Observer *pObserver);        // 新增对象
    void Detach(Observer *pObserver);        // 删除对象

    // 虚函数,提供默认的实现,派生类可以自己实现来覆盖基类的实现
    virtual void    SetState(STATE nState);    // 设置状态
    virtual STATE    GetState();        // 得到状态

protected:
    STATE m_nSubjectState;                    // 模拟保存Subject状态的变量
    std::list<Observer*>    m_ListObserver;    // 保存Observer指针的链表
};

// Observer抽象基类
class Observer
{
public:
    Observer() : m_nObserverState(-1){}
    virtual ~Observer(){}

    // 纯虚函数,各个派生类可能有不同的实现
    // 通知Observer状态发生了变化
    virtual void Update(Subject* pSubject) = 0;

protected:
    STATE m_nObserverState;                    // 模拟保存Observer状态的变量
};

// ConcreateSubject类,派生在Subject类
class ConcreateSubject
    : public Subject
{
public:
    ConcreateSubject() : Subject(){}
    virtual ~ConcreateSubject(){}

    // 派生类自己实现来覆盖基类的实现
    virtual void    SetState(STATE nState);    // 设置状态
    virtual STATE    GetState();        // 得到状态

};

// ConcreateObserver类派生自Observer
class ConcreateObserver
    : public Observer
{
public:
    ConcreateObserver() : Observer(){}
    virtual ~ConcreateObserver(){}

    // 虚函数,实现基类提供的接口
    virtual void Update(Subject* pSubject);
};

#endif

------解决方案--------------------
Main.cpp
C/C++ code
#include "Observer.h"
#include <iostream>

int main()
{
    Observer *p1 = new ConcreateObserver;
    Observer *p2 = new ConcreateObserver;

    Subject* p = new ConcreateSubject;
    p->Attach(p1);
    p->Attach(p2);
    p->SetState(4);
    p->Notify();

    p->Detach(p1);
    p->SetState(10);
    p->Notify();

    delete p;

    system("pause");

    return 0;
}

------解决方案--------------------
帮顶~~
------解决方案--------------------
Modern C++ Design,上边对这两个例子的实现一论再论,不能再详细了