美文网首页
设计模式

设计模式

作者: 云木杉 | 来源:发表于2018-11-19 16:54 被阅读0次

设计模式六大原则

  • 单一职责原则

一个类而言,应该仅有一个引起它变化的原因。

  • 开放封闭原则

定义:类、模块、函数应该是可以拓展的,不可修改的。

  • 里氏替换原则

所有引用基类的地方必须能透明地使用其他子类的对象。

  • 依赖倒置原则
  • 迪米特原则

一个软件实体应当尽可能少地与其他实体发生相互作用。

  • 接口隔离原则

一个类对另一个类的依赖应该建立在最小的接口上。

创建型设计模式

  • 单例模式

保证一个类只有一个实例,并提供一个访问全局访问点。

  • 饿汉式 :在类加载时就完成了初始化,所以类加载比较慢,但获取对象速度比较快。基于类加载机制,避免了线程问题。如果从始至终没用这个实例,则造成内存浪费。
public Singleton{

  private static Singleton instance = new Singleton();

  private Singleton(){}

  public static  Singleton getInstance(){
      return instance;
  }
}
  • 懒汉式 懒汉模式声明了一个静态对象,在用户第一次调用时初始化。这虽然节约了资源,但第一次加载时需要实例化,反应稍慢一些,而且在多线程时不能正常工作。

线程不安全

public Singleton{

  private static Singleton instance;

  private Singleton(){}

  public static  Singleton getInstance(){
      if(instance == null){
        instance = new Singleton();
      }      
      return instance;
   }
}

线程安全

public Singleton{

  private static Singleton instance;

  private Singleton(){}

  public static synchronized Singleton getInstance(){
      if(instance == null){
        instance = new Singleton();
      }      
      return instance;
   }
}

静态内部类

public Singleton{

  private Singleton(){}

  public static Singleton getInstance(){
          return SingletonHelp.instance;
   }

  private static class SingletonHelp{
    private static final Singleton instance = new Singleton();
}

}

2.单例模式的使用场景 在一个系统中,要求一个类有且仅有一个对象,它的具体使用场景如下:

  • 整个项目需要一个共享访问点或共享数据。
  • 创建一个对象需要耗费的资源过多,比如访问I/O或者数据库等资源。
  • 工具类对象。
  • 简单工厂模式

定义:简单工厂模式属于创建型模式,其又被称为静态工厂方法模式,这是由一个工厂对象决定创
建出哪一种产品类的实例。

  • 建造者模式
  • 使用场景:
    当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
    相同的方法,不同的执行顺序,产生不同的事件结果时。
    多个部件或零件都可以被装配到一个对象中,但是产生的运行结果又不相同时。
    产品类非常复杂,或者产品类中的调用顺序不同而产生了不同的效能。
    在创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,但是对象的内部组成构
    件面临着复杂的变化。
  • 优点:
    使用建造者模式可以使客户端不必知道产品内部组成的细节。
    具体的建造者类之间是相互独立的,容易扩展。
    由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。
  • 缺点:产生多余的Build对象以及导演类。

行为型设计模式

相关文章

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 浅谈JS的一些设计模式

    @(书籍阅读)[JavaScript, 设计模式] 常见设计模式 设计模式简介 设计模式概念解读 设计模式的发展与...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

网友评论

      本文标题:设计模式

      本文链接:https://www.haomeiwen.com/subject/oleofqtx.html