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