• 设计模式(二)


    设计模式(二)

    一、单例模式

      单例类只能有一个实例、单例类必须自己创建自己的唯一实例、单例类必须给所有其他对象提供这一实例。

      关键代码:就是构造函数私有。

    1.2、具体实现:

        首先创建一个单列类,在类中,自己先把对象创建出来,将构造函数私有化,这样就不会被实例化,提供一个获取方法,让其他方法可以获取。

        

    当我想获取的时候。

      

    这样就可以保证无论多少个类,去获取实例对象,内存对象中都是那一个对象。

    1.3、实现方式。

      懒汉式,线程不安全。懒汉式的意思就是先不new出来,在获取方法里判断一下,为空,我再创建。线程不安全就是我没有加锁,安全就是加上锁。

      

    加上锁

    3、饿汉式

      饿汉式就是直接常见出来,类一加载,就创建了。不需要加锁,也不会有并发问题,懒汉式,不加锁有可能有并发问题。

      

      4、双检锁

      这种方式安全,且在多线程的情况下能保持高性能。

      

    二、工厂模式

      工厂模式在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

      工厂模式是让类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行

      可以解决接口选择的问题。

      

    其实工厂模式就是,我写几个类,然后我在写个工厂类,工厂里面是有一个获取方法,我通过判断参数,返回不同的类。我使用工厂的时候,只要用它的获取方法,传入我想要的类的名称就行了

  • 相关阅读:
    gcc 编译
    UltraEdit 添加到右键菜单
    linux 编译错误:undefined reference to `__gxx_personality_v0'
    UltraEdit 取消生成.bak文件
    容器
    Windows CEvent事件
    Windows _beginthreadex 线程类与线程池
    C++ 工厂模式
    Mutex linux线程锁
    windows CRITICAL_SECTION 线程锁
  • 原文地址:https://www.cnblogs.com/gushiye/p/14006109.html
Copyright © 2020-2023  润新知