当前位置: 首页 > news >正文

营销网站建设的规则上海城乡建设部网站首页

营销网站建设的规则,上海城乡建设部网站首页,湖南住房建设厅网站,直播app在线看片有哪些前言 结构模式可以让我们把很多小的东西通过结构模式组合起来成为一个打的结构,但是又不影响各自的独立性,尽可能减少各组件之间的耦合。 Adapter Class/Object(适配器) Bridge(桥接) Composite(组合) Decorator(装饰) 动态…

前言

结构模式可以让我们把很多小的东西通过结构模式组合起来成为一个打的结构,但是又不影响各自的独立性,尽可能减少各组件之间的耦合。

Adapter Class/Object(适配器)

Bridge(桥接)

Composite(组合)

Decorator(装饰)

动态地给一个对象添加一些额外的职责(不重要的功能,只是偶然一次要执行),就增加功能来说,装饰模式比生成子类更为灵活。建造过程不稳定,按正确的顺序串联起来进行控制。
GOOD:当你向旧的类中添加新代码时,一般是为了添加核心职责或主要行为。而当需要加入的仅仅是一些特定情况下才会执行的特定的功能时(简单点就是不是核心应用的功能),就会增加类的复杂度。装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。

在这里插入图片描述

decorator.h


#ifndef CLION_TEST_DECORATOR_H
#define CLION_TEST_DECORATOR_H#include <string>
#include <iostream>
using namespace std;// 人
class Person
{
private:string m_strName;
public:Person(string strName) {m_strName = strName;}Person() {}virtual void Show(){cout<<"装扮的是:"<<m_strName<<endl;}
};// 装饰类
class Finery:public Person
{
protected:Person* m_component;
public:void Decorate(Person* component) {m_component = component;}void Show() override{m_component->Show();}
};// T恤
class TShirts:public Finery
{
public:void Show() final{cout<<"T Shirts ";m_component->Show();}
};// 裤子
class BigTrouer: public Finery
{void Show() final{cout<<"Big Trouer ";m_component->Show();}
};#endif //CLION_TEST_DECORATOR_H

main.cpp

#include <iostream>
#include "decorator.h"using namespace std;int main() {system("chcp 65001");// 装饰模式Person *p = new Person("小李");BigTrouer *bt = new BigTrouer();TShirts *ts = new TShirts();bt->Decorate(p);ts->Decorate(bt);ts->Show();return 0;
}

输出:

T Shirts Big Trouer 装扮的是:小李

调用关系:

TShirts::Show ==> BigTrouer::Show ==> Person::Show

Facade(外观)

Flyweight(享元)

Proxy(代理)

代理模式

GOOD:远程代理,可以隐藏一个对象在不同地址空间的事实
虚拟代理:通过代理来存放需要很长时间实例化的对象
安全代理:用来控制真实对象的访问权限
智能引用:当调用真实对象时,代理处理另外一些事
在这里插入图片描述

proxy.h

#ifndef CLION_TEST_PROXY_H
#define CLION_TEST_PROXY_H#include <string>
#include <iostream>using namespace std;// 定义接口
class Interface {
public:virtual void Request() = 0;
};// 真实类
class RealClass : public Interface {
public:void Request() final {cout << "真实的请求" << endl;}
};// 代理类
class ProxyClass : public Interface {
private:RealClass *m_realClass;
public:void Request() final {if (m_realClass == nullptr) {m_realClass = new RealClass();}m_realClass->Request();}
};#endif //CLION_TEST_PROXY_H

main.cpp

int main() {ProxyClass* test = new ProxyClass();test->Request();return 0;
}

调用关系:

ProxyClass::Request ==> RealClass::Request 

后记

http://www.yayakq.cn/news/399115/

相关文章:

  • 做网站不知道做什么内容的做暧暧网站免费
  • 怎样做建网站做淘客郑州网站开发培训班
  • 百度网盘搜索引擎网站手机贷款注册
  • 做外贸网站的经验wordpress 手册
  • 百度地图手机网站开发建筑工程包括哪些项目
  • 苏州市建设局网站阜阳讯拓网站建设
  • 程序员找工作网站数字广东网络建设有限公司是国企
  • 宁波网站备案幕布拍照最新搜索引擎排名
  • 做网站想要中立东莞是什么风险等级
  • 备案 网站建设方案书可以用自己的电脑做网站主机
  • 昌平电子网站建设全网引流推广
  • 网站转载代码arial 网站开发是用犀利
  • 建设银行网站能不能注销卡凡科官网免费制作小程序
  • 运营和广告投放的区别seo关键词排名优化怎样
  • 网站建设服务合同 印花税百度推广管理
  • 品牌网站建设968常州网约车驾驶员资格证网上报名
  • 自助建站源码php屏蔽阿里云网站吗
  • 深圳网络营销全网推广抖音优化
  • 自己建设网站流程icp备案查看网站内容吗
  • 网站开发的目的相关书籍网址缩短在线生成app
  • 网站建设答辩ppt模板组织建设是什么意思
  • 三雷网站程序微信商城怎么开通教程
  • 网站底部连接怎么做马来西亚服务器租用
  • 广州专业网站改版设计公司百度收录入口提交查询
  • 重庆网站建设公司价钱德州做网站最好的公司有哪些
  • php网站开发环境配置合同无效的12种情形
  • 网站类型的销售wordpress tag分类
  • 合肥做网站123cms徐州建立网站
  • 做配电箱的专门网站网站开发的英文书有什么软件
  • 服务 好的网站制作遵义软件制作平台