Java设计模式
ouyangjun__
这个作者很懒,什么都没留下…
展开
-
第九章:设计模式-抽象工厂模式
一)介绍 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 主要解决:主要解决接口选择的问题。 何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。 如何解决:在一个产品族里面,定义多个产品。 优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。 缺点:产品族扩展非常困难,要增加一个系.原创 2020-11-12 22:10:06 · 137 阅读 · 0 评论 -
第八章:设计模式-建造者模式
一)介绍 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。 何时使用:一些基本部件不会变,而其组合经常变化的时候。 如何解决:将变动的部件,和不变动的部件分离开。 优点: .原创 2020-11-12 13:50:09 · 122 阅读 · 0 评论 -
第七章:设计模式-外观模式
一)介绍 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。 何时使用: 1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。 2、定义系统的统一入口。例如各大网站的单点登录功能,只需要输入账号密码,就能登录相关的子系统。 3、微服务分层,每个微服务实现单一功能,整原创 2020-11-11 21:10:12 · 185 阅读 · 0 评论 -
第六章:设计模式-模板模式
一)介绍 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 主要解决:具有公共的行为方法,但每一个具体子类可能实现的方式存在差异性,重写该方法。 何时使用:当存在相同算法时。 如何解决:将相同算法抽离出来到父类,由子类实现算法的差异性。 优点: 1、封装不变部分,扩展可变部分。具体细节步骤实现定义在子类中,子类定义详细处理算法是不会改变算法整体.原创 2020-11-11 11:10:20 · 146 阅读 · 0 评论 -
第五章:设计模式-工厂模式
一)介绍 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。该设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 主要解决:接口选择的问题。 何时使用:明确知道不同条件下创建不同实例时。 如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。 优点: 1、一个调用者想创建一个对象,只要知道其对象名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。 缺点:每次增加一个产品时.原创 2020-11-05 10:55:15 · 147 阅读 · 0 评论 -
第四章:设计模式-代理模式
一)介绍 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 主要解决:在直接访问对象时带来的问题,如服务器安全问题,只能提供代理方式进行访问。 何时使用:在访问一个类时需要做一些控制情况。 如何解决:增加中间层,相当于增加一个代理。 优点: 1、职责清晰。 2、高扩展性。 3、智能化。 缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作,有些代.原创 2020-11-05 09:51:03 · 120 阅读 · 0 评论 -
第三章:设计模式-装饰模式
一)介绍 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。 何时使用:在不想增加很多子类的情况下扩展类。 如何解决:将具体功能职责划分,同时继承装饰者模式。 优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩.原创 2020-11-04 21:00:20 · 124 阅读 · 0 评论 -
第二章:设计模式-策略模式
一)介绍 策略模式(Strategy Pattern),该设计模式属于行为型模式。 主要解决:在有多种算法相似的情况下,使用 if...else所带来的复杂和难以维护。 何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。 如何解决:将这些算法封装成一个一个的类,任意地替换。 优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。 缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。 使用场景: 1、如果在一个系统里面有许多...原创 2020-11-04 20:35:42 · 132 阅读 · 0 评论 -
第一章:设计模式-简单工厂模式
一)介绍 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。该设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 主要解决:接口选择的问题。 何时使用:明确知道不同条件下创建不同实例时。 ...原创 2020-11-04 16:15:41 · 116 阅读 · 0 评论 -
第四章:Java设计模式-原型模式
原型模式 简介:是用于创建重复的对象,同时又能保证性能。 针对于原型实例对象的种类,根据该对象克隆创建一个新对象。 浅克隆 弊端:值类型属性变化时不会影响克隆的对象,引用类型属性变化时会影响克隆对象。 package com.xm.designpattern.prototype; import java.util.ArrayList; import java.u...原创 2018-09-01 20:46:08 · 130 阅读 · 0 评论 -
第一章:Java设计模式-单例模式
一、单例模式-饿汉模式 package com.xm.designpattern.single; /** * 单例模式-饿汉模式 * 原理: 不管是否使用,类加载时就初始化好 * 缺点: 非线程安全,只适合单线程使用 * @author ouyangjun * */ public class HungrySingle { private HungrySingle hungry...原创 2018-08-13 21:25:44 · 142 阅读 · 0 评论 -
第二章:Java设计模式-工厂模式
简单工厂模式 原理: 先创建一个接口,由子类继承,需要生成什么格式文件就生成什么格式文件 优点: 传递文件类型,直接new生成,比较简单 缺点: 工厂类单一,扩展时,业务逻辑比较多 package com.xm.designpattern.factory; /** * 简单工厂模式 * 原理: 先创建一个接口,由子类继承,需要生成什么格式文件就生成什么格式文件 * 优点: 传递文...原创 2018-08-15 23:16:36 · 154 阅读 · 0 评论 -
第三章:Java设计模式-建造者模式
建造者模式 意图:把某个复杂的对象和行为表示的方式分离,以同样的行为方式表达不同的意思 优点:适用于部件变化少,组件变化多的场景。组件易于扩展。 缺点:对象的行为需要类似,并且组件可能会很多。 1)创建一个播放机接口,该播放机类型可有多种 package com.xm.designpattern.builder; /** * 播放器,可包含不同的播放器 * @author ouy...原创 2018-08-17 22:02:48 · 176 阅读 · 0 评论