码迷,mamicode.com
首页 > 其他好文 > 详细

9.设计模式

时间:2020-05-04 17:14:44      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:也会   原型模式   号码   适配器模式   单例   进程   let   常驻内存   工厂   

一、创建型设计模式

1、单例模式(Singleton):保证进程中,某个类只有一个实例

多线程需要双判断(if)+锁(lock)

if(){

  lock(){

    if(){

      }
  }

}

即使是单例的,变量也不是线程安全的,单例不是为了保证线程安全

单例的好处就是单例,就是全局唯一的一个实例

应对一些特殊情况,比如 全局唯一号码生成器

单例可以避免重复创建,但是也会常驻内存

除非是真的有必要,否则不要单例

2、原型模式(Prototype):单例的基础上升级,把对象从内存中复制,然后返回新对象,但是又不是new出来的

换个方式创建对象,不走构造函数,而是内存拷贝

class Prototype
    {
        private static Prototype _Prototype = new Prototype();

        public static Prototype CreateInstence()
        {
            return (Prototype)_Prototype.MemberwiseClone();
        }
    }

3.工厂模式:转移对象的创建,留下扩展空间

把简单工厂拆分成多个工厂,保证每个工厂的相对稳定,但是要多new一次工厂

中间层,屏蔽业务类变化的影响,而且可以留下创建对象的扩展空间

4.抽象工厂:创建对象,创建一组不可分割的产品簇

二、结构型设计模式

1.适配器模式:解决重构的问题,新东西和旧系统不吻合,通过继承/组合进行适配

类适配器(通过继承)

对象适配器(通过组合)

2.代理模式:通过代理完成对业务类的访问,包一层方便任意功能扩展

3.装饰器模式:通过组合+继承,完成对象功能动态扩展,

三、行为型设计模式

9.设计模式

标签:也会   原型模式   号码   适配器模式   单例   进程   let   常驻内存   工厂   

原文地址:https://www.cnblogs.com/bjhblogs/p/12827013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!