----设计模式----
文章平均质量分 90
叶孤心丶
这个作者很懒,什么都没留下…
展开
-
JAVA开发的23种设计模式之 --- 解释器模式
解释器模式概述 : 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子.使用场景 : 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子.这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题.解释器模式的结构 :抽象解释器 : 声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口原创 2017-09-07 15:06:24 · 393 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 组合模式
组合模式概述:将对象组合成树形结构以表示”部分-整体”的层次结构.使得用户对单个对象和组合对象的使用具有一致性.应用场景:希望忽略单个对象和组合对象的区别,统一使用组合结构中的所有对象.也就是将单个对象和组合对象中的统一的地方封装起来.供外部调用.组合模式中的角色组合部件:它是一个抽象类,为要组合的对象提供统一的接口.叶子:在组合中表示子节点对象,叶子节点已经是最底层不能再有子节点原创 2017-08-17 18:43:19 · 464 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 桥接模式
桥接模式概述:将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化.如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构.应用场景实现系统可能有多个角度分类,每一种角度都可能变化.解释:桥接模式将继承模式转化成关联关系,他降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量.理解抽象化,实现化,解耦抽象化:将复杂物体的一个或几个共同原创 2017-08-17 18:31:29 · 4773 阅读 · 1 评论 -
JAVA开发的23种设计模式之 --- 外观模式
外观模式概述:为子系统中的一组接口提供一个一致的界面,外观(Facade)模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.使用场景当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可原创 2017-08-17 18:26:17 · 323 阅读 · 0 评论 -
JAVA开发的23种设计模式之 — 装饰器模式 && 代理器模式
装饰器模式概述 : 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器模式相比生成子类更加灵活维基百科解释 : 通过使用修饰模式,可以在运行时扩充一个类的功能.原理是 :增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数.装饰类实现新的功能,但是,在不需要用到新功能的地方,他可以直接调用原来的类中的方法.修饰类必须和原来的类有相同的接口.使原创 2017-08-17 18:20:11 · 2722 阅读 · 1 评论 -
JAVA开发的23种设计模式之 --- 适配器模式
适配器模式概述 : 将一个类的接口转换成另一个客户希望的接口.适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作.适配器模式的种类类的适配器模式对象的适配器模式接口的适配器模式涉及角色目标(Target)角色 : 所期待得到的接口源(Adapee)角色 : 现在需要适配的接口适配器(Adaper)角色 : 适配原创 2017-08-15 19:23:01 · 357 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 原型模式
原型模式:定义 : 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.(主要用于对象的复制).要被复制的原型类(Prototype)需要具备的条件实现Cloneable接口.在JAVA中有一个Cloneable接口,他唯一的作用就是在运行时通知虚拟机可以安全的在实现了此接口的类上使用clone方法.在JAVA虚拟机中,只有实现了Cloneable接口的类才可以被拷贝,否原创 2017-08-15 19:08:15 · 306 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 建造者模式
建造者模式定义 : 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.也就是说用户不需要知道一个复杂的对象时如何创建的.用户只需要知道使用构造不同对象的方法(Director)就能得到一个完整的复杂对象的实例建造者模式通常包含的几个角色Builder : 给出的一个抽象接口,规范产品对象的各个组成部分的建造.这个接口先声明必须要实现的复杂对原创 2017-08-15 19:05:22 · 414 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 单例模式
单例模式概述 : 是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类中只有一个实例.要点单例类只能有一个实例,它必须自行创建这个实例他必须自行向整个系统提供这个实例.实现单例模式的类只提供私有的构造函数类定义中含有一个该类的静态私有对象该类提供了一个静态的公有的函数用于创建或获取他本身的静态私有对象原创 2017-08-14 18:54:56 · 382 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 享元模式
享元模式概述:当会创建大量对象时,可能会占用很多的内存,这个时候我们选择把其中重复创建的那部分对象抽取出来,如果有使用到该对象并且已经创建过了.就直接返回内存中已有的对象,避免重新创建.使用场景系统中有大量相似对象,并消耗大量的内存这些对象可以按内蕴状态分为很多组,当把外蕴状态从对象中剔除出来时,每一组这样的对象都可以用一个对象来代替系统不依赖与这些对象身份,这些对象是不可分辨的.原创 2017-08-17 18:46:36 · 281 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 策略模式
策略模式概述:定义一系列的算法,把它们一个个封装起来,并且使他们可以相互替换.这样策略模式使得算法的变化独立于使用算法的客户使用场景在有多种算法相似的情况下,使用if...else所带来的复杂和难以维护一个系统中有很多类,而区分他们的只是他们直接的行为帮助理解:策略模式的核心是对算法的封装该模式重点在于实现对算法(策略)的选择做法就是把需要变化的部分独立出来,这个部分就原创 2017-08-17 18:49:15 · 309 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 模板模式
模板模式概述:定义一个操作中的算法的框架,而将一些步骤延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.模板模式是一种基于继承的代码复用技术.帮助理解:模板模式可以理解为,有一个流程性的算法框架,现在将这个流程分解成一个个的步骤,其中有一些步骤是稳定不变的,有些是可能变化得,通过一个抽象类将所有的步骤抽象成一个个的方法.抽象类中有一个称之为”模板方法原创 2017-08-18 18:32:24 · 433 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 中介者模式
中介者模式概述 : 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互中介者模式所包含的角色Mediator : 中介者角色.在里面定义各个部门之间的交互对象,ConcreteMediator : 具体中介者实现角色.维护各个部门之间的交互关系Deparement : 部门角色.所有具体部门类的父原创 2017-08-30 13:43:55 · 313 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 访问者模式
访问者模式概述:表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作.访问者模式所包含的角色Visitor : 抽象访问者角色.为该对象结构中具体元素角色声明一个访问操作接口.该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色.这样访问者就可以通过该元素角色的特定接口直接访问它.ConcreteVisit :原创 2017-08-27 11:35:50 · 304 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 状态模式
状态模式概述:允许一个对象在其内部状态改变时改变他的行为.对象看起来似乎修改了它的类帮助理解:可以将状态模式的场景理解为QQ的状态,不同的状态对于他的QQ好友来说,行为是不一样的.例如:隐身状态对于好友来说不可见.总结下来状态模式就有两个要点:1.可以通过改变状态来获得不同的行为.2.对象看起来有所变化(在例子中可以理解为,你的好友可以看到你的变化)使用场景:对象的行为依赖于他的状态.并且原创 2017-08-24 18:23:51 · 301 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 备忘录模式
备忘录模式概述:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样可以将对象恢复到原先保存的状态.帮助理解:备忘录模式就是为对象提供一个备份的地方,当对象想要回滚到前一个状态时,调用备忘录对象直接就可以恢复.备忘录模式说包含的角色Originator : 原发器,也就是发起者.记录有当前时刻自身的内部状态,负责创建一个备忘录Memento,用于记录原创 2017-08-24 18:19:18 · 380 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 命令模式
命令模式概述:将请求封装成一个对象,从而使我们可用不同的请求对客户进行参数化解决的问题:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系.但是在某些场合.需要对行为进行记录,撤销/重做,事务等处理.这种无法抵御变化的紧耦合是不合适的.在这种情况下就需要将"行为请求者”与”行为实现者”解耦,将一组行为抽象成对象.可以实现二者之间的松耦合.命令模式所包含的角色命令角色(Com原创 2017-08-21 18:11:28 · 332 阅读 · 0 评论 -
JAVA开发的23种设计模式之 — 责任链模式
责任链模式概述:责任链模式是一种对象的行为模式,在责任链模式中,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道这个链上的哪一个对象最终处理了这个请求,这使得系统可以在不影响客户端的情况下动态的重新组织和分配责任.帮助理解:可以将责任链模式理解为链表的那种思想,多个处理方法在一条链上,每一个接收者(原创 2017-08-21 17:13:10 · 342 阅读 · 0 评论 -
JAVA开发的23种设计模式之 — 迭代器模式
迭代器模式概述:提供一种方法顺序访问一个聚合对象中各个元素,而无须暴露该对象的内部表示.帮助理解:迭代器模式就是分离了集合对象的遍历行为.抽象出一个迭代器来负责,这样即可以做到不暴露集合的内部结构,又可以让外部代码透明的访问集合内部的数据.迭代器模式包含的角色迭代器角色:定义遍历元素所需要的方法,一般来说肯定会有这三个方法.取得下一个元素的方法next(),判断是否遍历结束的方法h原创 2017-08-21 17:10:15 · 311 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 观察者模式
观察者模式概述:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于他的对象都能得到通知并自动刷新.帮助理解:观察者模式可以理解为,在一个一对多的关系模式中,例如一个微信公众号有多个关注用户,那么关注该微信公众号的微信用户就是观察者,微信公众号就是被观察者.一个微信公众号会有多个关注用户,这就是其中的一对多的关系.然后当一个对象的状态发生改变就是说当被观察者(微信公原创 2017-08-19 23:29:57 · 355 阅读 · 0 评论 -
JAVA开发的23种设计模式之 --- 工厂模式 && 抽象工厂模式
设计模式概述 : 是一套被反复使用,多数人知晓的,经过分类的,代码设计经验的总结.目的 : 提高代码的可重用性,让代码更容易被他人理解,保证代码的可靠性.设计模式使代码编写真正工程化;设计原则 单一职责原则 (设计模式五大原则):一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会原创 2017-08-14 18:44:54 · 333 阅读 · 0 评论