您当前的位置: 首页 >  c++

插件开发

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

软件架构设计师-行为型模式-访问者模式-责任链模式-备忘录模式-C++

插件开发 发布时间:2022-04-17 07:24:14 ,浏览量:1

文章目录
    • 1.访问者模式
    • 2.责任链模式
    • 3.备忘录模式
    • 4.作者答疑
  本文定义模式设计中行为型模式的解析,主要讲解访问者模式、责任链模式和备忘录模式。本文内容来至互联网内容的编辑修改,方便读者学习。如有侵权,第一时间联系作者删除。

1.访问者模式

  访问者模式,表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式适用于数据结构相对稳定的系统。它把数据结构和作用于结构上的操作之间耦合解脱开,使得操作几何可以相对自由地演化。 访问者模式的目的使要把处理从数据结构中分离出来。很多系统可以按照算法和数据结构分开,如果这样的系统有比较稳定的数据结构,又有易于变化的算法的话,使用访问者模式就是比较合适的。

// VisitorModel.h文件
#pragma once
#include 
#include 
#include 
#include 

class Visitor;
// 被访问元素
class Element
{
protected: 
	std::string m_strName;
public:
	Element(std::string str)
	{
		m_strName = str;
	}
	std::string getName()
	{
		return m_strName;
	}
	virtual void Accept(Visitor * visitor) = 0;
};

class ConcreteElementA : public Element
{
public:
	ConcreteElementA(std::string str) : Element(str) {}
	void Accept(Visitor * visitor);
};

class ConcreteElementB : public Element
{
public: 
	ConcreteElementB(std::string str) : Element(str) {}
	void Accept(Visitor * visitor);
};

// 访问者
class Visitor
{
public:
	virtual void VisitConcreteElementA(ConcreteElementA * p) = 0;
	virtual void VisitConcreteElementB(ConcreteElementB * p) = 0;
};

class ConcreteVisitorA : public Visitor
{
public:
	void VisitConcreteElementA(ConcreteElementA * p)
	{
		std::cout             
关注
打赏
1665481431
查看更多评论
0.0412s