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

什么专业学网站建设wordpress xiu主题

什么专业学网站建设,wordpress xiu主题,51自学网官方网站,遵义建设网站一、设计模式概念 设计模式是被广泛使用的软件开发中的一种解决方案#xff0c;它提供了一套被验证过的、可重用的设计思想#xff0c;帮助开发人员更加高效地开发出可维护、易扩展的软件系统。 设计模式可以分为三类#xff1a;创建型模式、结构型模式和行为型模式。 1.1…一、设计模式概念 设计模式是被广泛使用的软件开发中的一种解决方案它提供了一套被验证过的、可重用的设计思想帮助开发人员更加高效地开发出可维护、易扩展的软件系统。 设计模式可以分为三类创建型模式、结构型模式和行为型模式。 1.1 创建型模式 创建型模式用于描述对象的创建过程它的目的是封装对象的创建过程从而降低系统的耦合度并且能够更加灵活地创建对象。创建型模式包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式等。 1.2 结构型模式 结构型模式用于描述如何将类或对象按某种布局组成更大的结构它涉及到接口和类的组合。结构型模式包括适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式和代理模式等。 1.3 行为型模式 结构型模式用于描述如何将类或对象按某种布局组成更大的结构它涉及到接口和类的组合。结构型模式包括适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式和代理模式等。 二、单例模式概念 单例模式是一种创建型设计模式它保证一个类只有一个实例并提供一个全局访问点。 1.将构造函数私有化将类的构造函数设为私有这样外部就无法通过构造函数来创建该类的对象。 2.提供一个静态成员变量来保存唯一实例在该类中定义一个静态成员变量用于保存该类的唯一实例。 3.提供一个静态方法来获取唯一实例在该类中定义一个静态方法用于获取该类的唯一实例。在该方法中判断静态成员变量是否为空如果为空则创建一个新的对象并赋值给静态成员变量然后返回该静态成员变量。 4.禁止复制构造函数和赋值运算符为了避免从已有对象派生出新的对象需要将复制构造函数和赋值运算符定义为私有或删除函数。 通过上述方法可以使单例类只有一个对象全局只有一个实例对象存在通过静态接口来获取该实例 2.1 饿汉模式 饿汉模式就像有种饿叫做你妈妈/奶奶觉得你饿不管你真饿假饿 我都把饭给你做好饿汉模式也一样我直接把单例对象给你初始化好完了你直接用就可以了 代码示例 class Singleton { public:static Singleton* getInstance() { //获取单例对象的静态接口return instance;} private:static Singleton* instance;//静态对象Singleton() {}//构造、拷贝构造、赋值设置为私有Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance new Singleton(); //类加载之后就直接初始化饿汉模式2.2 懒汉模式 懒汉模式就是比较懒有人要获取单例对象我才来实例化踢一脚走一步的那种 代码示例 class Singleton { public:static Singleton* getInstance() { //获取单例对象的静态接口if (instance nullptr)//如果单例对象没有初始化则进行初始化{instance new Singleton();}return instance;} private:static Singleton* instance;//静态对象Singleton() {}//构造、拷贝构造、赋值设置为私有Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; }; Singleton*Singleton::instance nullptr; //初始化为 nullptr有了代码那当然要试一试单例模式怎么玩验证一下是不是真的只有一个单例对象 可以看到单例对象是唯一的 2.3 单例模式验证测试 2.3.1 饿汉模式 代码示例 #includeiostream using namespace std;class Singleton { public:static Singleton* getInstance() { //获取单例对象的静态接口return instance;}void Print(){cout hello world endl;} private:static Singleton* instance;//静态对象Singleton() {}//构造、拷贝构造、赋值设置为私有Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance new Singleton(); //类加载之后就直接初始化饿汉模式 int main() {//1.构造对象试试Singleton sin;//报错构造函数私有化无法在类外实例化出对象return 0; }那么如何去调用这个单例类里面的方法呢 //调用静态方法获取单例对象(单例对象指针) 然后调用单例类中的成员函数 Singleton::getInstance()-Print();运行结果 三、单例模式是线程安全的吗 我们考虑这样一个场景两个线程懒汉模式下同时去获取这个单例对象那么在获取单例对象之前都是nullptr 那么都会同时去 new 一个单例对象导致会创建多个单例对象那么就无法实现单例模式单例对象唯一的特点 我们可以通过加锁来解决该问题 #include mutexclass Singleton { private:static Singleton* instance;static std::mutex mtx;Singleton() {}public:static Singleton* getInstance() {if (instance nullptr) { // 第一次检查是否为空std::lock_guardstd::mutex lock(mtx); // 加锁保证线程安全if (instance nullptr) { // 第二次检查是否为空instance new Singleton();}}return instance;}// 禁止拷贝构造函数和赋值运算符Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance nullptr; std::mutex Singleton::mtx; 当然了 饿汉模式是线程安全的因为单例类对象在类加载完就进行了实例化通过静态接口获取单例对象时直接获取即可无需初始化。
http://www.hkea.cn/news/14261782/

相关文章:

  • 重庆h5网站建设模板上海发布公众号下载安装
  • 做 理财网站有哪些问题微信小程序是什么模式
  • 农产品网站建设投标书wordpress子域名储存图片
  • 四川网站设计成功柚米科技建设一个asp网站
  • 河北建设厅网站三类人专门做外贸的网站
  • 大型建筑网站设计公司详情媒体库wordpress
  • php网站开发环境说明wordpress主题包怎么做
  • 常州市教育基本建设与装备管理中心网站响应式网页模版
  • 企业网站空间多大合适医院网站建设最新报价
  • 服装商城网站建设价格信用中国官网企业查询
  • 网站制作怎样做背景wordpress google字体 下载到本地
  • 可以做审计初级题的网站佛山住房和城乡建设部网站官网
  • 网站正在建设中 源码下载wordpress 固定 拼音网址
  • 深圳华维网站建设淘宝代运营公司排名
  • 做it的网站有哪些微信引流被加软件
  • 如何解析后用二级域名做网站牡丹江建设局网站
  • wordpress名站重庆外贸网站建设公司排名
  • 做调查问卷能赚钱的网站网站数据库迁移
  • 做网站挣钱快又多wordpress获取分类列表标题
  • ssr网站怎么做东莞网站制作公司怎么选择
  • 做网站建设有哪些公司好电脑前端主要做什么
  • 河北网站备案流程dw做的网站成品
  • 房山网站制作招聘网站开发策划方案
  • 专业的天津网站建设建设企业银行网站
  • cms网站开发需要学什么京网站制作公司
  • 潍坊 网站天津网站建设方案优化
  • 企业网站的目的微商城手机网站制作
  • 青岛李村网站设计公司seo引擎优化培训
  • 经营网站需要什么资质北京公司减资流程
  • 建设领域现场专业人员报名网站四川省建设人才网