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

好的淘客网站网站开发 微信开发 微信营销

好的淘客网站,网站开发 微信开发 微信营销,模块化wordpress企业主题,公司网站升级改版方案设计模式 目的 实现可重用解决方案,构筑易维护、可扩展的软件系统。 六大原则 单一职责: 类的职责单一,一个方法做一件事。 开闭原则: 拓展开放,修改关闭。 里氏替换: 父类能出现的地方,子…

设计模式

目的

实现可重用解决方案,构筑易维护、可扩展的软件系统。

六大原则

单一职责: 类的职责单一,一个方法做一件事。

开闭原则: 拓展开放,修改关闭。

里氏替换: 父类能出现的地方,子类可以替换。子类必须全部实现父类方法,尽量不暴露自己public方法供外界使用。覆盖或实现父类方法时,输入参数可以多。

依赖倒置: 模块之间的依赖通过抽象发生,具体类之间不依赖。每个类尽量有抽象类,任何类不应该从具体类派生,尽量不重写基类方法。

迪米特法则: 尽量减少对象间交互,从而减少类间耦合。

接口隔离原则: 类间的依赖关系建立在最小的接口上。

抽象构建框架,实现拓展细节。

单例模式

一个类只有一个对象,及系统中只有一个实例,实例被所有程序模块共享。

例如服务器配置信息放在一个文件中,配置数据由单例对象统一读取,服务进程的其他对象通过单例对象获取配置信息。

实现

有饿汉模式和懒汉模式两种实现模式。

饿汉模式

程序启动就创建唯一实例对象。

多线程获取单例对象不需要加锁。

#include <iostream>
#include <string>class Singleton {
private:// 私有构造函数,防止外部创建实例Singleton() : data("Singleton") {std::cout << "Singleton instance created!" << std::endl;}// 私有析构函数,防止外部删除实例~Singleton() {}// 删除拷贝构造函数和赋值运算符Singleton(const Singleton&) = delete;Singleton& operator=(const Singleton&) = delete;// 静态成员变量,类加载时初始化static Singleton instance;// 成员变量std::string data;public:// 获取单例对象的静态方法static Singleton& getInstance() {return instance;}// 获取成员变量的方法std::string& getData() {return data;}
};// 在类外初始化静态成员变量
Singleton Singleton::instance;int main() {// 获取单例对象Singleton& singleton = Singleton::getInstance();// 访问单例对象的成员变量std::cout << "Data: " << singleton.getData() << std::endl;// 再次获取单例对象,验证是否为同一个实例Singleton& singleton2 = Singleton::getInstance();if (&singleton == &singleton2) {std::cout << "Both references point to the same instance!" << std::endl;}return 0;
}

懒汉模式

如果单例对象构造特别耗时或者耗资(加载插件、网络),可在第一次使用时才创建对象。

C++11 之后,局部静态变量的初始化是线程安全的,因此可以直接使用局部静态变量实现懒汉模式

#include <iostream>
#include <string>class Singleton {
private:// 私有构造函数,防止外部创建实例Singleton() : data("Singleton") {std::cout << "Singleton instance created!" << std::endl;}// 私有析构函数,防止外部删除实例~Singleton() {}// 删除拷贝构造函数和赋值运算符Singleton(const Singleton&) = delete;Singleton& operator=(const Singleton&) = delete;// 成员变量std::string data;public:// 获取单例对象的静态方法static Singleton& getInstance() {static Singleton instance;  // 局部静态变量,线程安全return instance;}// 获取成员变量的方法std::string& getData() {return data;}
};int main() {// 获取单例对象Singleton& singleton = Singleton::getInstance();// 访问单例对象的成员变量std::cout << "Data: " << singleton.getData() << std::endl;// 再次获取单例对象,验证是否为同一个实例Singleton& singleton2 = Singleton::getInstance();if (&singleton == &singleton2) {std::cout << "Both references point to the same instance!" << std::endl;}return 0;
}

推荐一下

https://github.com/0voice

http://www.15wanjia.com/news/168672.html

相关文章:

  • 网站app开发费用古城做网站的公司
  • 深圳网站设计公司哪家好查看网站开发语言方法
  • 淘宝二官方网站是做啥的深圳网站建设代理
  • wordpress添加自定义字段面板新网站如何做seo
  • 整站关键词排名优化网站被管理员权限
  • 建设网站商城需要多少费用吗有域名有空间怎么做网站
  • 网站界面设计规则广告设计公司服务承诺
  • 转转怎么做钓鱼网站wordpress 关闭搜索功能
  • 宝安网站设计网站建设哪家快闵行区做网站公司
  • 建设新农村网站大气寓意好的公司名字
  • 深圳电商网站设计网页设计与制作教程江西高校出版社
  • html5建一个网站seo整站优化报价
  • 商城网站seo自治区建设厅网站
  • 那个网站做毕业设计西安网站建设问问q778925409耍強
  • 怎么打开自己做的网站百度云登录
  • 政务网站开发方案上海市建设机械行业协会网站
  • 网站设置了跳转被qq拦截娱乐平台网站开发免费
  • 10大最佳免费建站软件推荐惠州规划建设局网站
  • 烟台有哪些网站建站推广公司石家庄新钥匙做网站
  • 企业网站的主要功能优秀网页设计作品案例欣赏
  • 高端的咨询行业网站制作济源做网站公司
  • 自己有网站 做app吗怎么做钓鱼网站
  • 东莞英文网站设计免费漫画软件 全免费
  • 进入网络管理的网站制作个人网站实例
  • 中国建设管理信息网站seo网站概述
  • 苏州网站建设设计公司招聘网站开发方案doc
  • 洛阳建站推广公司域名备案查询网站备案信息查询
  • 郏县建设局网站在哪个网站上做苗木生意好些
  • wordpress 运营商广告seo任务
  • 南昌网站设计网站开发wordpress logo制作教程