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

插件开发

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

软件架构设计师-结构型模式-装饰模式-外观模式-享元模式-C++

插件开发 发布时间:2022-04-21 07:20:00 ,浏览量:1

文章目录
    • 1.装饰(Decorator)模式
    • 2.外观模式
    • 3.享元模式
    • 4.作者答疑
  本文是结构型模式的第二部分,如果读者对结构型模式感兴趣,可以先阅读第一部分。

1.装饰(Decorator)模式

  装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。在现实生活中,常常需要对心有产品增加新的功能或美化其外观,如房子装修、相片加相框等。在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰模式来实现。   Component(抽象构件):它是 具体构件和抽象装饰类的共同父类,声明了在具体构件中实现的业务方法,它的引入可以使客户端以一致的方式处理未被装饰的对象以及装饰之后的对象,实现客户端的透明操作。   ConcreteComponent(具体构件):它是抽象构件类的子类,用于定义具体的构件对象,实现了在抽象构件中声明的方法,装饰器可以给它增加额外的职责(方法)。   Decorator(抽象装饰类):它也是抽象构件类的子类,用于给具体构件增加职责,但是具体职责在其子类中实现。它维护一个指向抽象构件对象的引用,通过该引用可以调用装饰之前构件对象的方法,并通过其子类扩展该方法,以达到装饰的目的。   ConcreteDecorator(具体装饰类):它是抽象装饰类的子类,负责向构件添加新的职责。每一个具体装饰类都定义了一些新的行为,它可以调用在抽象装饰类中定义的方法,并可以增加新的方法用以扩充对象的行为。 在这里插入图片描述 在这里插入图片描述

#include 
#include 
using namespace std;
// Component(抽象构件),它是具体构件和抽象装饰类的共同父类,手机
class Phone
{
public:
	virtual void show() = 0;
};
// ConcreateComponent(具体构件),iphone
class Iphone : public Phone
{
public:
	Iphone(string kind)
	{
		this->kind = kind;
	}
	virtual void show()
	{
		cout             
关注
打赏
1665481431
查看更多评论
0.0440s