Java设计模式
KunQian_smile
这个作者很懒,什么都没留下…
展开
-
工厂模式(Factory)
一、工厂模式介绍工厂模式实现了创建者和调用者的分离工厂模式分类:1.简单工厂模式2.工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类3.抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类面向对象设计的基本原则:OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关...原创 2018-03-07 10:47:13 · 168 阅读 · 0 评论 -
状态模式(State)
一、状态模式介绍状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当遇到不同的状态遇到不同的行为的时候,可以使用状态模式状态模式UML图State(抽象状态类):定义一个接口以封装与Context的一个特定状态相关的行为...原创 2018-03-07 11:10:22 · 185 阅读 · 0 评论 -
桥接模式(Bridge)
一、桥接模式介绍桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立的变化。而不会直接影响到其他部分。未使用桥接模式的抽象与实现结构图(如下):如果要增加一个apple品牌的电脑,则需要在台式机下新增一个apple的台式机,在笔记本下新增一个apple笔记本,在pad下新增一个apple的pad。代码比较繁琐。如果使用桥接模式(如下图),使抽象部分和抽象的派生(实现)部分分离出来,这样让它们各...原创 2018-03-07 16:11:01 · 233 阅读 · 0 评论 -
策略模式(Strategy)
一、策略模式介绍策略模式:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。例如:商场中的收银软件,内部是怎么针对不同的商品打不同的折扣呢?又或者,是怎么根据不同会员等级打不同的折扣呢?其实内部就是定义了一个算法家族,给每个会员或者商品都指定一个特定的算法,根据不同的算法,打不同的折扣。策略模式UML图:Strategy(抽象算法接口):定义了所有...原创 2018-03-07 17:50:06 · 200 阅读 · 0 评论 -
装饰器模式(Decorator)
一、装饰模式介绍装饰模式(decorator):表示动态的给一个对象添加一些新的功能(利用子类继承父类也可以实现),但是比生成子类方式更灵活。也叫装饰者模式或者装饰器模式例如:我们每个人身上穿的衣服,鞋子,领带,披风都可以理解为是对人的装饰。装饰器模式类图:Component:定义一个对象接口,可以给这些对象动态添加职责。真实对象和装饰者对象有相同的接口,这样客户端不用知道内部有装饰者对象(Dec...原创 2018-03-07 18:10:10 · 258 阅读 · 0 评论 -
建造者模式(Builder和Director)
一、建造者模式介绍建造者模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示]假如一个对象的构建很复杂,需要很多步骤。则可以使用建造者模式,将其构建对象和组装成一个对象这两步给分开来。构建部分为(builder)和组织部分(director),实现了构建和装配的解耦。不同的构建器,相同的装配也可以做出不同的对象。相同的构建器,不同的装配顺序...原创 2018-03-06 15:12:44 · 354 阅读 · 0 评论 -
观察者模式(Observer)
一、观察者模式介绍观察者模式(发布-订阅模式):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象。使它们能够自动更新自己。例如:1、游戏中的例子:游戏中,当进入新人的时候,大喇叭会通知所有的玩家。所有的游戏玩家是订阅者,而大喇叭就是一个发布者。2、QQ群聊天中:在群里聊天的时候,你发一句话,大家都可以看到。那么,这个群里的人就是...原创 2018-03-06 17:08:27 · 140 阅读 · 0 评论