Java设计模式
Java的23中设计模式
编程之艺术
Stay hungry,Stay foolish!
展开
-
Thread之模板模式
我们知道,在实际使用线程的时候,真正的执行逻辑都是写在run方法里面,run方法是线程的执行单元,如果我们直接使用Thread类实现多线程,那么run方法本身就是一个空的实现,如下: /** * If this thread was constructed using a separate * <code>Runnable</code> run o...原创 2019-12-17 01:13:40 · 641 阅读 · 0 评论 -
模板方法模式
在《Head First设计模式》一书中,在对模板方法模式介绍之前,提及了这样一句话,可总结为:我们之前讨论的设计模式,都是围绕封装对象创建、方法调用、复杂接口等等。但是今天要讨论的模板方法设计模式,是对算法块的封装。模板方法模式在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中去实现。模板方法模式赋予子类在不改变算法结构的情况下,子类可以重新定义算法中的某些步骤。也就是说,模板方法...原创 2019-12-15 21:28:00 · 345 阅读 · 0 评论 -
设计模式之简单工厂
在使用OO设计编程时,提倡的方式不针对实现编程,然而我们平时在使用new创建对象时,正是使用实现编程。简单工厂不属于创建型,但是不属于GOF23种设计模式。后面我们要学的工厂方法以及抽象工厂都是由简单工厂一步一步演进而来的。一、简单工厂使用场景 简单工厂适合工厂类创建对象的数量比较少的场景; 需要创建对象的应用层只需要传入工厂类的参数,对于工厂内部如何创建对象的逻辑是不关心的。...原创 2019-12-01 21:58:11 · 327 阅读 · 0 评论 -
单例模式正确使用方式
这次分享我们就来谈谈单例模式的使用,其实在本公众号设计模式的第一篇分享就是单例模式,为什么又要讨论单例模式了?主要是那篇文章谈的比较浅,只对单例模式的主要思想做了一个分享,这篇文章会从多个方面去分享单例模式的使用,下面进入正题。使用Java做程序的小伙伴都知道单例,尤其是使用spring框架做项目的,大家都知道spring框架管理类默认都是单例模式的,并且是线程安全的。那么如果保证一个类只被初...原创 2019-08-22 22:55:54 · 399 阅读 · 0 评论 -
观察者模式之认识篇
观察者模式在设计模式里面算是一个比较大的模块,对观察者模式分为两个板块分享,第一个板块分享为什么使用观察者模式。对设计模式不了解的小伙伴们可能提到设计模式几个字比较胆怯,在平时的工作中用的是少之又少。但是在面试的时候,如果你面试的是高级岗位,设计模式是必问的领域,所以今后对设计模式的分享,我们从身边开始案例开始引入每一个设计模式,让小伙伴们对设计模式不在那么陌生。现在开始观察者模式的正文部...原创 2019-07-05 17:19:43 · 342 阅读 · 0 评论 -
设计模式之策略模式
在写策略模式时,这里就不采用先提出概念,然后一步一步论述的写法,我们先抛出问题,看看使用面向对象编程思想是怎么解决问题的。在这里我们使用鸭子(Duck)这个项目来引出策略模式。我们接到这样一种需求,做一个鸭子类的游戏,作为项目负责人,我们首先应该怎么考虑了?我们先使用面向对象的设计思想来设计,首先,鸭子都会叫、游泳,所以把这些动作设计在超类里面,然后子类继承父类,在这里超类设计成抽象类。代原创 2017-09-11 10:31:06 · 430 阅读 · 1 评论 -
设计模式之单例模式
在所有的设计模式里面,单例模式算是最简单的了。在这里先说说单例模式在哪些情况下使用了?在实际开发中,有些对象我们只需要一个:线程池、缓存、硬件设备等;如果多个实例会造成有冲突、结果的不一致性等问题,都可以使用单例模式来解决。那么有人会说,不是用单例模式也是可以的,比如说:可以用静态变量方式来实现,或者程序员之间协商一个全局变量,有好多种解决方案。我们为什么要使用单例模式了?单例模式作为前人经验原创 2017-09-12 10:02:46 · 549 阅读 · 0 评论 -
设计模式之备忘录模式
备忘录模式是设计模式里面的对象行为型模式。他的意图是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。有时有必要记录一个对象的内部状态。为了允许用户取消不确定的操作或从错误中恢复过来,需要实现检查点和取消机制 , 而要实现这些机制,你必须事先将状态信息保存在某处,这样才能将对象恢复到它们先前的状态。但是对象通常封装了其部分或所原创 2017-09-13 21:44:57 · 449 阅读 · 0 评论