
java设计模式探索
文章平均质量分 85
学习设计模式
powerfuler
这个作者很懒,什么都没留下…
展开
-
状态模式介绍
这里写自定义目录标题状态模式介绍一、什么是状态模式?二、使用介绍三、为什么我们需要它?(适用场景是什么)小结 1、行为随状态改变而改变的场景。 2、条件、分支语句的代替者。四、优缺点五、怎么实现六、一个简单的地铁运行状态的例子。七、总结:项目开发,单独的状态模式不适用我们的当前的合同状态的流转,我们采用策略模式+状态模式的方式实现每天努力一点,每天都在进步状态模式介绍一、什么是状态模式?在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态原创 2021-04-25 10:06:27 · 2266 阅读 · 0 评论 -
实例探索Java模式之路——序言
最近一段时间迷上了学习Java模式,我很喜欢这些模式,在学习的过程中,沉醉其中,就像在听大师们讲课一样。给我以启示和领悟。设计模式对于一个项目是非常重要的,如果在一个项目中不采用适当的设计模式,不仅后期维护困难、成本高,而且更有甚着直接导致的整个系统的报废。所以对于一个开发人员具有相关的设计模式知识是非常重要的。一个系统采用适当的设计模式,不仅后期维护方便,还易于后期新功能的扩原创 2017-04-30 14:28:42 · 374 阅读 · 0 评论 -
实例探索Java模式之路——简单工厂模式
简单工厂模式简单工厂模式是所有设计模式中最简单的一种模式,我们通过了解相关概念以及一个相关的例子熟悉此模式。1、简单工厂模式是类的创建模式,又叫静态工厂方法模式。简单工厂模式是由一个工厂对象决定创建哪一种产品类的实例。2、工厂模式几种形态:工厂模式专门负责将大量的有共同接口的类实例化,工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪个类。原创 2017-04-30 14:31:58 · 391 阅读 · 0 评论 -
实例探索Java模式之路——工厂方法模式
工厂方法模式1、工厂方法模式是类的创建模式,又叫虚拟构造子模式或者多态性工厂模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际的创建工作推迟到子类中。2、工厂方法模式是对简单工厂模式的进一步抽象和推广,由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,克服了它的缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做。原创 2017-04-30 15:06:35 · 419 阅读 · 0 评论 -
实例探索Java模式之路——抽象工厂模式
抽象工厂模式1、抽象工厂模式是对象的创建模式。抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。2、抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品对象。这就是抽象工厂模式的用意。工厂类负责创建抽象产品的具体子类的实例。3、什么是产品簇:是指位于不同产品等级结构中,功能相关联的产品组成的家族。原创 2017-05-01 12:51:11 · 576 阅读 · 0 评论 -
实例探索Java模式之路——多例模式
多例模式1、多例模式是单例模式的推广,是对象的创建模式,其中多例类可以有多个实例,而且多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。2、多例模式特点:1、多例类可以有多个实例;2、多例类必须自己创建、管理自己的实例,并向外界提供自己的实例;3、单例类和多例类的结构图:单例类只有一个实例,但允许有限个实例。允许原创 2017-05-21 07:51:23 · 999 阅读 · 0 评论 -
实例探索Java模式之路——建造模式
建造模式1、建造模式是对象的创建模式。建造模式是把一个产品的内部表象与产品的生产过程分割开来,从而使一个建造过程生产具有不同的内部表象的产品对象。建造模式就比如汽车销售公司想要造汽车(相当于客户端),然后找到了汽车生产商(导演者),而在造汽车的过程中。生产商不是自己造汽车的各个零件,而是从其他国家购买零件,生产这个零件的具体国家就是具体的建造者,(导演者调用这些零件)然原创 2017-05-21 08:32:04 · 297 阅读 · 0 评论 -
实例探索Java模式之路——原始模型
原始模型1、原始模型模式属于对象的创建模式。通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个对象的方法创建出更多同类型的对象。2、Java语言的构件模型直接支持原型模型模式。所有的javabean都继承自java.lang.object,object类提供一个clone()方法,可以将一个javabean对象复制一份。这个javabean必须实现一个标识接原创 2017-06-09 20:30:25 · 637 阅读 · 0 评论 -
实例探索Java模式之路——适配器模式
什么是结构模式:结构模式描述的是如何将类或者对象结合在一起形成更大的结构,结构模式描述两种不同的东西:类与类的实体。结构模式分为:类的结构模式和对象的结构模式类的结构模式:使用继承来把类,接口等组合在一起,以形成更大的结构。当一个类从父类继承并实现某个接口时,这个新的类就把父类的结构和接口的结构组合起来。类的结构模式是静态的。对象的结构模式:描述怎样把各种不原创 2017-06-09 20:44:17 · 4105 阅读 · 0 评论 -
实例探索Java模式之路——合成模式
合成模式1、合成模式属于对象的结构模式,又叫做部分—整体模式。合成模式将对象组织到树结构中,用来描述整体与部分的关系。合成模式使客户端将单纯元素与复合元素同等看待。2、基于继承的类型的等级结构以及基于合成的对象结构也是一个树结构。3、合成模式结构:抽象构件角色:一个抽象角色,它给出了参加组合的对象规定一个接口。此角色给出共同的接口及其默认行为。树原创 2017-06-09 21:15:05 · 815 阅读 · 0 评论 -
实例探索Java模式之路——装饰模式
装饰模式1、装饰模式又名包装模式,是以对客户透明的方式扩展对象的功能,是继承关系的一个替代方案。2、装饰模式结构:抽象构件角色:给出一个抽象接口,以规范准备接收附加任务的对象。具体构件角色:定义一个将要接收附加责任的类。装饰角色:持有一个构件对象的实例,并定义一个与抽象构件接口一致的接口。具体装饰角色:负责给构件对象附加上附加责任。3、一原创 2017-06-18 13:42:03 · 398 阅读 · 0 评论 -
实例探索Java模式之路——代理模式
代理模式在这里简单说一下代理模式,通过两个例子,来认识什么是代理模式。关于代理模式更多的介绍,以及更多的用途,以及在实际开发中,代理模式怎么用,可以查看Nginx有关的介绍,在那里我们详细介绍代理模式的动态代理。1、代理模式是对象结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。2、代理模式结构:抽象主体角色(代理对象和被代原创 2017-06-18 14:59:37 · 490 阅读 · 0 评论 -
实例探索Java模式之路——门面模式
门面模式门面模式相对比较简单,在这里简单介绍下门面模式。1、门面模式是对象的结构模式。外部与一个子系统的通信必须通过一个统一的门面对象进行。(比如,病人去医院看病,自己要进行挂号,付费,拿药等操作,现在用门面模式改造下,病人和医院之间出现了接待员,负责病人的行为操作,帮病人挂号,取药等,这个接待员就相当于一个门面)。2、门面模式结构:1、门面角色:客户端可以原创 2017-06-27 21:48:20 · 534 阅读 · 0 评论 -
实例探索Java模式之路——不变模式
不变模式1、一个对象的状态在对象被创建之后就不再变化,这就是不变模式(缺少改变自身状态的行为),不变模式只涉及一个类,一个类的内部状态创建后,在整个生命周期都不会发生变化,这个类叫不变类,而不变模式就是使用这种类。2、不变模式的两种形式:弱不变模式与强不变模式弱不变模式:一个类的实例的状态是不可变的,但是这个类的子类的实例具有可能会变化的状态。实现条原创 2017-07-15 08:35:16 · 578 阅读 · 0 评论 -
实例探索Java模式之路——策略模式
策略模式1、策略模式属于对象的行为模式。是针对的一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得他们可以互相替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式是对算法的包装。把使用算法的责任和算法本身分割开,委派给不同的对象管理。简单来说就是,准备一组算法,并将每一个算法封装起来,使得他们可以互相互换。3、结构:环原创 2017-07-29 16:52:24 · 309 阅读 · 0 评论 -
实例探索Java模式之路——观察者模式
观察者模式1、观察者模式是对象的行为模式。又叫发布_订阅模式、源_监听模式等。它定义了一种一对多的依赖关系,让多个观察者同时监听某一个主题对象,当主题对象状态发生变化,会通知所有的观察者对象,使他们能够自动更新自己。比如:当我做作业的时候告诉妈妈,饭做好了喊我吃饭。这里就是观察者模式,我向妈妈(系统主题)注册我感兴趣的事(吃饭),妈妈在事情发生的时候,通知系统观察者对象原创 2017-08-01 21:16:50 · 2820 阅读 · 0 评论 -
实例探索Java模式之路——模版方法模式
模版方法模式1、模版方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法迫使子类实现剩余的逻辑。不同的子方法可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。模版方法模式是基于继承的代码复用的基本技术,模版方法模式的结构和用法也是面向对象设计的核心。2、基本结构:抽象模版:原创 2017-08-05 16:34:47 · 331 阅读 · 0 评论 -
实例探索Java模式之路——命令模式
命令模式1、命令模式属于对象的行为模式。是对命令的封装。他把一个请求或者操作封装到一个对象中,允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式把发出命令的责任或执行命令的责任分割开,委派给不同对象。2、每一个命令都是一个操作:请求的一方发出请求要求执行一个操作,接收的一方收到请求,并执行操作。命令允许请求的原创 2017-08-05 17:20:44 · 765 阅读 · 0 评论 -
实例探索Java模式之路——状态模式
状态模式1、状态模式是对象的行为模式。状态模式允许一个对象在内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的对象。2、状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态的子类。状态模式的意图是让一个对象在内部状态改变的时候原创 2017-08-12 17:03:58 · 379 阅读 · 0 评论 -
模拟实现任务分配(模板模式)
在实际应用中有这样一个场景:有m台服务器,有n个任务,需要把这n个任务按一定策略分配给m台服务器来执行,请按以下要求实现该场景:1、使用List列表代表服务器(列表中每个元素为一个IP地址);2、使用List列表代表任务(列表中每个元素为任务ID);3、分配的过程就是把IP地址与任务ID映射上的过程;4、策略要支持多个,如按IP地址随机、按任务数量平分等,策略需要支持可扩展(扩展时不用修改...原创 2018-08-14 12:47:59 · 1919 阅读 · 3 评论 -
实例探索Java模式之路——单例模式
单例模式1、单例模式是对象的创建模式,单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。2、单例模式特点:1、某个类只有一个实例;2、它必须自行创建这个实例3、它必须自行向整个系统提供这个实例;3、单例模式中的单例类被限定只有一个实例,但单例模式和单例类可以很容易推广到任意且有有限个实例的情况,这时候就变成了多原创 2017-05-01 20:05:50 · 338 阅读 · 1 评论 -
单例模式之懒汉单例(延迟初始化)多线程再解析
单例模式之懒汉单例(延迟初始化)多线程再解析1、多线程下的懒汉单例: public class Lazysingleton { private static Lazysingleton m_instance = null; // 私有默认构造方法,外界无法直接实例化 private Lazysingleton() { } // 静态工厂方法 public static ...原创 2018-04-15 16:51:22 · 1750 阅读 · 1 评论 -
被破坏的单例模式
被破坏的单例模式我们知道饿汉单例天生是线程安全的,但是通过其他途径单例模式是可以被破坏的。懒汉亦如此。1、通过反射来破解单例模式 public class Eagersingleton implements Serializable { private static final long serialVersionUID = 888L; private static Eagersingl...原创 2018-04-15 13:51:45 · 626 阅读 · 0 评论