Java设计模式
Java设计模式
钦拆大仁
这个作者很懒,什么都没留下…
展开
-
并发编程---单例与双重检测
单例模式可以使得一个类只有一个对象实例,能够减少频繁创建对象的时间和空间开销。单线程模式下一个典型的单例模式代码如下:class Singleton{ private static Singleton singleton; private Singleton(){} public static Singleton getInstance(){ ...原创 2019-04-23 16:45:04 · 148 阅读 · 0 评论 -
策略模式+工厂模式+模板模式混合使用
现实中存在这种业务场景,通过交易号执行不同的业务代码逻辑,就算把业务方法封装成不同的方法也会出现很多的if-else,代码看起来很臃肿。如果需要添加新的交易还需要添加新的il-else。String transNo = "30012400";if (transNo == "30012400") { new TransNo30012400().function();} else if (transNo == "30012401") { new TransNo30012401().function原创 2020-08-24 09:34:46 · 1555 阅读 · 0 评论 -
Java设计模式-中介者模式
中介者模式是指用一个中介对象来封装一系列的对象交互。中介者使个对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。简单地说,将原来两个直接引用或者依赖的对象拆开,在中间加入一个“中介”对象,使得两头的对象分别与“中介”对象引用或者依赖。优点: 1、降低了类的复杂度,将一对多转化成了一对一。 2、各个类之间的解耦。 3、符合迪米特原则。缺点:中介者会庞大,变得复...原创 2019-09-11 16:32:03 · 95 阅读 · 0 评论 -
Java设计模式-组合模式
组合模式(Composite Pattern)是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。优点: 1、高层模块调用简单。 2、节点自由增加。缺点:在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。使用场景:系统对象层次具备整体和部分,呈树形结...原创 2019-09-11 16:14:44 · 167 阅读 · 0 评论 -
Java设计模式-模板模式
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。优点具体细节步骤实现定义在子类中,子类定义详细处理算法是不会改变算法整体结构。 代码复用的基本技术,在数据库设计中尤为重要。 存在一种反向的控制结构,通过一个父类调用其子类的操作,通过子类对父...原创 2019-07-25 16:43:48 · 121 阅读 · 0 评论 -
Java设计模式-状态模式
状态模式(state)是用来封装某种状态下的一整套行为的,状态模式隐藏了状态切换过程,调用者并不清楚模块内部的状态转换细节,状态模式实现了程序运行时的多态。状态模式的类图和策略模式类似,并且都是能够动态改变对象的行为。但是状态模式是通过状态转移来改变 Context 所组合的 State 对象,而策略模式是通过 Context 本身的决策来改变组合的 Strategy 对象。所谓的状态转移,是...原创 2019-07-25 11:03:31 · 110 阅读 · 0 评论 -
Java设计模式-策略模式
策略模式(Strategy Pattern)指有一定行动内容的相对稳定的策略名称。优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。策略模式体现了面向对象程序设计中非常重要的两个原则:封装变化的概念。 编程中使用接口,而不是使用的是具体的实现类(面向接口编程)。应用场景:多个类只区别在表现行...原创 2019-07-25 10:51:41 · 131 阅读 · 0 评论 -
Java设计模式-委派模式
委派模式(Delegate)实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体实现的方法.。委派模式可以根据的任务熟悉选择不同的方式实现。首先定义一个接口public interface Worker { void doWork();}定...原创 2019-07-24 17:20:34 · 127 阅读 · 0 评论 -
Java设计模式-观察者模式
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)...转载 2019-07-24 16:59:47 · 76 阅读 · 0 评论 -
Java设计模式-建造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建...转载 2019-06-26 11:21:46 · 121 阅读 · 0 评论 -
Java设计模式-原型模式
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数...转载 2019-06-26 10:18:19 · 96 阅读 · 0 评论 -
Java设计模式-抽象工厂模式
抽象工厂模式(Abstract Factory)就是提供一个接口,用于创建相关或者依赖对象的家族,而不需要明确指定具体类。他允许客户端使用抽象的接口来创建一组相关的产品,而不需要关系实际产出的具体产品是什么。这样一来,客户就可以从具体的产品中被解耦。它的优点是隔离了具体类的生成,使得客户端不需要知道什么被创建了,而缺点就在于新增新的行为会比较麻烦,因为当添加一个新的产品对象时,需要更加需要更改接口...原创 2019-04-24 15:13:52 · 95 阅读 · 0 评论 -
Java设计模式-装饰者模式
装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。特点(1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。(2) 装饰对象包含一个真实对象的引用(reference)(3) 装饰对象接受所有来自客户端的请求。它把这些请求转发给真实的对象。(4) 装饰对象可以在转...原创 2019-04-03 15:16:43 · 92 阅读 · 0 评论 -
Java设计模式-适配器模式
适配器模式:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。适配器模式的别名为包装器(Wrapper)模式,它既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合。适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转...原创 2019-04-10 20:29:33 · 140 阅读 · 0 评论 -
Java设计模式-代理模式
代理模式是java中最常用的设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。优点:(1)职责清晰真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。(2)代理对象可以在客户端和目标对象之间...原创 2019-03-27 15:33:24 · 102 阅读 · 0 评论 -
Java设计模式-简单工厂模式
工厂模式是java中最常用的设计模式之一。这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。在工厂模式中我们没有创建暴露给客户创建对象,并使用一个普通的接口引用新建对象。开发场景:在公司内部系统中,系统之间通过报文调用,某个子系统通过截取报文中表示接口号的字段来判断调用哪个具体方法,既可以再程序中写死,也可以使用配置文件。1、定义一个接口public int...原创 2019-03-26 16:51:15 · 117 阅读 · 0 评论 -
Java设计模式-单例模式
单例模式是java中最简单的模式之一,确保所有对象访问同一个实例,节约系统资源。适用于1、需要频繁创建和销毁的对象;2、创建消耗资源太多有会频繁创建的对象;3、有状态的工具类对象;4、频繁访问数据库或文件的对象。使用场景:线程池、数据库连接、埋点计数器。简单实现(懒汉式)public class SingleObject { private static SingleObject ...原创 2019-03-26 16:31:45 · 110 阅读 · 0 评论