状态模式(State Pattern)

原创 2016年08月30日 16:18:01

状态模式(State Pattern)

flyfish

#include "stdafx.h"
#include <iostream>


class role;
class employee
{
public:
    virtual void output(role *role_ptr) = 0;

};

class engineer : public employee
{

public:
    virtual void output(role *role_ptr)
    {
        std::cout << "engineer" << std::endl;
    }
};

class salesman : public employee
{
public:
    virtual void output(role *role_ptr)
    {
        std::cout << "salesman" << std::endl;
    }

};
class manager : public employee
{

public:
    virtual void output(role *role_ptr)
    {
        std::cout << "manager" << std::endl;
    }
};
class role
{
private:
    employee* employee_ptr_;
public:
    role(employee *employee_ptr) : employee_ptr_(employee_ptr){}

    void output()
    {

        if (employee_ptr_)
        {
            employee_ptr_->output(this);

        }
    }

    void change_role(employee *employee_ptr)
    {
        employee_ptr_ = employee_ptr;
    }
};

int _tmain(int argc, _TCHAR* argv[])
{

    employee *a = new engineer();
    employee *b = new salesman();
    employee *c = new manager();

    role *r = new role(a);

    r->output();
    r->change_role(b);
    r->output();
    r->change_role(c);
    r->output();

    delete r;
    delete a;
    delete b;
    delete c;

    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式 - 状态模式(state pattern) 详解

状态模式(state pattern) 详解本文地址: http://blog.csdn.net/caroline_wendy状态模式(state pattern): 允许对象在内部状态改变时改变它的...
  • u012515223
  • u012515223
  • 2014年07月11日 17:42
  • 2149

"围观"设计模式(21)--行为型之状态模式(State Pattern)

状态模式--允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。----百度百科 个人理解 状态模式应该说可以理解为某种状态下,程序的执行流程可能会发生变化,类...
  • wangyang1354
  • wangyang1354
  • 2016年06月13日 15:11
  • 3456

JAVA设计模式之 状态模式【State Pattern】

一、概述     当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状...
  • l416112167
  • l416112167
  • 2014年11月12日 23:48
  • 2702

Java设计模式——状态模式(STATE PATTERN)

场景一 描述:现在城市发展很快,百万级人口的城市一堆一堆的,那其中有两个东西的发明在城市的发展中起到非常重要的作用:一个是汽车,一个呢是...,猜猜看,是什么?是电梯!汽车让城市可以横向扩展,电梯让城...
  • u012401711
  • u012401711
  • 2016年09月26日 23:45
  • 3122

设计模式 - State Pattern(状态模式)

设计模式 - State Pattern(状态模式)  [源码下载]设计模式 - State Pattern(状态模式)作者:webabcd介绍允许一个对象在其内部状态改变时改变它的行为。对象看起来似...
  • chenying998179
  • chenying998179
  • 2008年06月21日 20:17
  • 377

状态模式(State Pattern)

《设计模式》对状态模式的定义:允许一个对象在其状态改变时,改变它的行为。看起来其对象似乎修改了它的类。别名:状态对象(Object for State)。 在下面两种情况下均可以使用State模式:...
  • u010934996
  • u010934996
  • 2013年08月30日 16:18
  • 352

状态模式(State pattern)

转自:http://www.cnblogs.com/singlepine/archive/2005/11/03/268380.html 一、引子    状态模式自身结构非常简单——前面刚刚介绍...
  • penaiyan
  • penaiyan
  • 2013年09月27日 23:26
  • 544

设计模式之十 --- 状态(State)模式

【1】基本概念          状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。【2】简单分析         我们先来看下该设计模式的UML的结构图...
  • cjjky
  • cjjky
  • 2012年05月20日 19:04
  • 15620

状态模式----State Pattern

状态模式
  • huaishu
  • huaishu
  • 2017年07月31日 15:44
  • 95

【设计模式】状态模式(State Pattern)

状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 ...
  • MR_XuZhe
  • MR_XuZhe
  • 2017年11月29日 11:21
  • 56
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:状态模式(State Pattern)
举报原因:
原因补充:

(最多只允许输入30个字)