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

小红书网站建设内容网站制作的评价标准

小红书网站建设内容,网站制作的评价标准,龙光城业主论坛家在深圳,微博推广运营一、设计模式概念 设计模式是被广泛使用的软件开发中的一种解决方案#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.dnsts.com.cn/news/149046.html

相关文章:

  • 建设网站客户资源从渠道来泰州市网站建设
  • 如何用wordpress制作网站网址缩短链接在线工具
  • 网站怎么样做优化长垣建设银行网站
  • 网站服务器建设合同手机微网站怎么制作
  • 网站的技术方案互动网站建设多少钱
  • 徐州专业网站seo绵阳 网站 建设
  • 网站模板素材电商软件开发平台
  • wang域名 网站网站跟域名是什么关系
  • 北京南站地铁线路图wordpress 音乐站主题
  • 可以投放广告的网站做网站的工资高吗
  • 网站优化建设公司工作组赴福建莆田
  • 千图主站与普通网站的区别北京的软件公司有哪些
  • 免费的开源网站wordpress 插件查看
  • 一千元做网站类似全民互推的推广平台
  • 天津进口网站建设电话重庆旅游
  • 应聘网站优化的简历怎么做南京网页制作
  • 沈阳网站建设策划方案营销型网站设计制作
  • 网站用php与asp哪个好哪里可以建设网站
  • 做网站是三网合一有什么优势企业网站做广告
  • 网站改地址要钱吗网络营销产品概念
  • html5博客网站模板如何做企业推广
  • 免费制作网站网页制作软件怎么做
  • 在婚纱店做网站优化徐州网站建设报价
  • 能被百度收录的建站网站黄岛网站建设负面消息处理
  • 游戏开奖网站建设土特产网站的制作
  • 做网站有底薪吗wordpress谷歌字体加载慢
  • 公司做网站需准备资料石家庄做网站科技公司
  • 精品建设课程网站在对方网站做友情链接
  • 深圳南山网站建设公司教育网站建设
  • 做网站工作图h5建站模板