【设计模式】Singleton

前言 Singleton设计模式,确保全局只存在一个该类的实例。将构造器声明为private,防止调用(虽然还是可以使用反射来调用)。声明一个静态的类实例在类中,声明一个公共的获取实例的方法。这篇博文给出了简单的实现方法,分析如何做到线程安全,整理了使用Singleton的坏处。 线程安全 方法一是线程安全的,在类被装载的时候,就初始化这个成员,Java库中Runtime就是用了这个

  • 0
  • 0
  • 阅读 ( 1333 )

【设计模式】Adapter

前言 Adapter设计模式,允许客户端使用接口不兼容的类。 昨天收拾一些以前的东西,发现了藏在柜子里的一条线,这条线叫做OTG。这条线的一端是micro-usb的输出口,另一端是usb的输入口。这条线,就是Adapter。手机如果想要使用U盘,会发现这个U盘的usb输出口太大了,根本插不进手机的接口。怎么办呢?使用适配器就好! 只要手机插上OTG,U盘再接上OTG,这样手机就可以欢快地使

  • 0
  • 0
  • 阅读 ( 1331 )

设计模式:策略模式,Java集合定制排序的核心思想

前言 前阵子面试的时候,有个面试官问我了解哪些设计模式吗?我说了策略模式。接着他问有哪些场景应用,我又回答他jdk的集合工具类有个排序方法就用到了策略模式,也就是java.util包下的Collections类,该类中有个sort方法,我们可以自定义排序规则实现集合的定制排序,这就是策略模式最直接的应用,说完之后他点点头,料想对我的回答还是比较满意吧,当然我也只是在这

  • 0
  • 0
  • 阅读 ( 1132 )

设计模式的七大原则(2) --接口隔离原则

前言 上一节我们学习了单一职责原则,简单来说就是各司其职,厨师就专注做好菜,不要跑到前堂做起小二。 但是呢,万事无一绝对。如果只是小饭店有时候也不是特别严格。还是那句话,原则是死的,人是活的。 接下来我们来学习接口隔离原则。 基本介绍 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。 怎么理解呢? 就是说,一

  • 0
  • 0
  • 阅读 ( 1153 )

【设计模式】Bridge

前言 Bridge设计模式,将一个复杂类分成可以单独开发的部分。分成的两个部分,abstraction,implementation。字面上是抽象和实现,但不同于抽象方法及其实现。下面摘录Wiki的两句话。 decoupleanabstractionfromitsimplementationsothatthetwocanvaryindependently 这句话,讲的是这个模式的定义。Bridge将abstraction从implementation中抽取出来,让abstraction和impleme

  • 0
  • 0
  • 阅读 ( 1676 )

23种设计模式之单例模式

单例模式
 单例模式分八种方式
 1)饿汉式(静态常量)2)饿汉式(静态代码块)3)懒汉式(线程不安全)4)懒汉式(线程安全,同步方法)5)懒汉式(线程安全,同步代码块)6)双重检查7)静态内部类8)枚举
 饿汉式(静态常量)
 
 publicclassSingletonTest01{
 publicstaticvoidmain(String[]args){
 
 //测试
 Singletons1=Singleton.getIns

  • 0
  • 0
  • 阅读 ( 1179 )

【设计模式】Composite

目录 前言 安卓View的实现View BeyondsetContentViewsetContentView做了什么事情? 如何将xml文件变成对象的? 小结 View的绘制流程三个流程 三个过程如何触发 Measure Layout Draw Composite设计模式measure,layout,draw的调用 总结 参考链接 前言 Composite设计模式,将物体组合成一个树结构,让单个对象和组合对象使用起来都一样,组合对象负责将实际的操作分发给每一个组件。 这篇博文分析了

  • 0
  • 0
  • 阅读 ( 1196 )

23种设计模式之原型模式

原型模式
 1、基本介绍
 1)原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并通过拷贝这些原型,创建新的对象。2)原型模式是一种创建型设计模式,允许一个对象再创建另一个可定制的对象,而无需知道如何创建的细节。3)原理:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即

  • 0
  • 0
  • 阅读 ( 1236 )

设计模式的七大原则(3) --依赖倒置原则

前言 上一节我们说了接口隔离原则,就是让接口的职责最小化。这样对维护代码简单,调用方法也清晰。 这节我们来研究依赖倒置原则。这个原则我认为是特别特别重要的。在很多地方我们能看到。比如Dubbo中使用到的SPI等等。 基本介绍 什么是依赖倒置原则? 我们可以将其分为两点: 1)高层模块不应该依赖低层模块,二者都应该依赖其抽象 2)抽象不应该依赖细节,细节应该

  • 0
  • 0
  • 阅读 ( 1401 )

设计模式:观察者模式 ——— 城管来了,摊主快跑

目录 前言 观察者模式定义 通用类图 实际例子 总结优点 缺点 参考: 前言 时间飞逝,转眼初夏已过,尤记得以前读大学的时候,夏季最快乐的时光就是和小伙伴们在球场上打完球后去校门附近的烧烤摊撸串喝酒,那种感觉真是大快人心,怎一个爽字了得。不过有时也会遇到特殊情况,在撸串时摊主突然告知要收摊,连忙向我们赔礼道歉,原因是城管将至。我们无奈只能中

  • 0
  • 0
  • 阅读 ( 1457 )

设计模式的七大原则(4) --里氏替换原则

前言 上一节中我们介绍了,依赖倒置,依赖倒置利用抽象的稳定性来架构我们的系统,是我们经常能遇到的一种原则,比如说面向接口编程。 这一节中,我们来说说里氏替换原则,这个原则其实非常非常的简单,其实与依赖倒置相结合来看,就是希望我们用抽象的方法来构建项目而非具体的实现,里氏替换原则就是推荐我们不要重写父类中具体的实现来构建我们的项目。 我

  • 0
  • 0
  • 阅读 ( 1021 )

设计模式之观察者模式

首先让我们来看一下定义 
                     观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,他的所
                     有以来都会收到通知并自动更新。
  
 观察者模式=出版者(主题Subject)+订阅者(观察者Observer)
 现在来看一个通俗易懂的图,进而对观察者模式有进一步了解:
  
 然后让我们

  • 0
  • 0
  • 阅读 ( 1575 )

设计模式:与SpringMVC底层息息相关的适配器模式

目录 前言 适配器模式1、定义 2、UML类图 3、实战例子 4、总结 SpringMVC底层的适配器模式 参考 前言 适配器模式是最为普遍的设计模式之一,它不仅广泛应用于代码开发,在日常生活里也很常见。比如笔记本上的电源适配器,可以使用在110~220V之间变化的电源,而笔记本还能正常工作,这就是适配器模式最直接的例子,同时也是其思想的体现,简单的说,适配器模式就是把

  • 0
  • 0
  • 阅读 ( 1300 )

DesignPattern系列__09设计模式概述

设计模式介绍 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模(Designpattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式的本质提高软件的维护性,通用性和扩展性,并降低软件的复杂度。 <>是经典的书,作者是ErichGamma、R

  • 0
  • 0
  • 阅读 ( 1326 )

设计模式之装饰者模式

首先让我们看一下装饰者模式(我爱叫他套娃模式)的概念:动态的将责任附加到对象上,
                       若要扩展功能,装饰者提供了比继承者更有弹性的集成方案。
 什么?没看懂?没关系,最后再来看这个概念,想让让我们来看一个咖啡屋项目(就是点各式
 各样的咖啡)。
 原本的设计如下:
 
  
 看似很好的设计,但是别忘了,

  • 0
  • 0
  • 阅读 ( 1533 )

设计模式之工厂模式(上篇)

为了面向接口编程,而不是面向实现编程,所以此时我么就不能再直接使用new了,因
 为当看到“new”时,我们就会想到“具体”。
 下面来看一个例子,假如你有一个披萨店,你的代码可能这么写:
 
 1PizzaorderPizza(){
 2Pizzapizza=newPizza();
 3
 4pizza.prepare();
 5pizza.bake();
 6pizza.cut();
 7pizza.box();

  • 0
  • 0
  • 阅读 ( 1711 )

设计模式之工厂模式(下篇)

今天我们来讲一讲抽象工厂:
 重要涉及原则:要依赖抽象,不要依赖具体。
 首先我们需要了解一个设计原则——依赖倒置原则:减少对具体的依赖,所谓的倒置是倒置的
                                         仅仅是指的和一般OO设计的思考方式完
                                         全相反(不能让高层组件依赖底

  • 0
  • 0
  • 阅读 ( 1367 )

设计模式入门笔记(1.1)

什么是设计模式? 【From百度百科】 设计模式是一种用于代码设计的经验总结。 设计模式的目的?为什么使用设计模式? HelloWorld是不需要使用设计模式的,设计模式的主要应用场景是在大型应用的构建上,假想一下,在2万行代码中增加功能,如果程序可读性差,代码将难以扩展和优化。 所以,设计模式主要聚焦: 构建工程化结构 代码的复用性 代码的易读性 代码的可扩展

  • 0
  • 0
  • 阅读 ( 1347 )

设计模式之单件模式

今天我们来看一下单件模式,这个模式是所有模式中类图最简单的哦!
 为什么用单件模式:
       有些对象我们只需要一个,比如:连接池、缓存、对话框、和注册表对象、日志对
       象等对象。事实上,这类对象只能有一个实例,如果制造出多个实例,就会导致许
       多问题产生,例如:程序的行为异常、资源使用过量,或者是不一致的结果。

  • 0
  • 0
  • 阅读 ( 1291 )

设计模式七大原则(1.2)

什么是设计模式原则? 设计模式原则是设计设计模式的原则,也就是设计模式应当如何设计所遵守的原则;换句话说,设计模式的设计是基于设计模式原则的。 设计模式的七大原则 单一职责原则 接口隔离原则 依赖倒置原则 里氏替换原则 开闭原则 迪米特原则 合成复用原则 设计原则核心思想 设计原则的目的是构建出更加稳定和健壮的软件。而像这样的软件要求 松耦合 可扩

  • 0
  • 0
  • 阅读 ( 1373 )