- 博客(19)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 Java设计模式——对象行为模式——访问者模式(VISITOR)
定义封装一些作用域某种数据结构中的个元素的操作,在不改变这个数据结构的 前提下,定义作用于这些元素的新的操作。一、概述 访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。在使用访问者模式时,被访问元素通常不是单独存在的,它们存储在一个集合中,这个集合被称为“对象结构”,访问者通过...
2018-04-27 21:00:36 224
原创 Java设计模式——行为模式——模板方法模式(TEMPLATE METHOD)
模板方法模式概念 模板方法模式属于行为型模式,它定义一个操作中的算法的骨架,而将一些步骤推迟到子类当中实现。父类抽取并实现的是公共方法,对于可变方法,父类做的只是定义了可变行为的接口,具体实现留给子类去完成,实现对代码的重复利用。模式中的角色 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。 具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算...
2018-04-27 17:08:34 277
原创 Java设计模式——行为模式——策略模式(STRATEGY)
策略模式概念其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,...
2018-04-26 20:41:26 179
原创 Java设计模式——行为模式——状态模式(STATE)
状态模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类uml Context:上下文环境,定义客户感兴趣的接口,维护一个State子类的实例,该实例定义了对象的当前状态State:抽象状态,定义一个接口以封装与 Context 的一个特定状态相关的行为。Co...
2018-04-26 20:25:39 206
原创 Java设计模式——行为模式——观察者模式(OBSERVER)
观察者模式概念在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。抽象被观察者角色(Subject):也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。抽象观察者角色(Observer):为所有的具体观察者定义一个接口,在得到主题通...
2018-04-26 16:47:29 181
原创 Java设计模式——行为模式——备忘录模式(MEMENTO)
备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外的保存 这个状态。三个角色:Originator:发起人,创建一个备忘录,可以记录,恢复自身的内部状态,还可根据 需求决定存储那些内部状态。Memento:备忘录,存储发起人角色的内部状态,并防止外部对象访问备忘录。Caretaker:管理者,存储备忘录,不能对备忘录内容进行访问,只能将其传递 给其他对象。UML类图使用场景保...
2018-04-26 13:01:56 195
原创 Java设计模式——行为模式——中介者模式(MEDIATOR)
中介者模式的定义用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。中介者模式的优点适当地使用中介者模式可以避免同事类之间的过度耦合,使得各同事类之间可以相对独立地使用。使用中介者模式可以将对象间一对多的关联转变为一对一的关联,使对象间的关系易于理解和维护。使用中介者模式可以将对象的行为和协作进行抽象,能够比较灵活的处理对象间...
2018-04-26 10:09:04 420
原创 Java设计模式——行为模式——迭代器模式(ITWEATOR)
迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。抽象迭代器(Iterator)角色:一般定义为接口,用来定义访问和遍历元素的接口。具体迭代器(ConcreteIterator)角色:实现对聚合对象的遍历,并跟踪遍历时的当前位置。抽象聚合(Aggregate)角色:定义创建相应迭代器对象的接口。具体聚合(ConcreteAggregate)角...
2018-04-25 21:23:18 223
原创 Java设计模式——行为模式——解释器模式(INTERPRETER)
解释器模式解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。(1)抽象表达式角色(AbstractExpression): 声明一个抽象的解释操作,这个接口为所有具体表达式角色都要实现的.(2)终结符表达式角色(TerminalExpres...
2018-04-25 20:33:27 164
原创 Java设计模式——行为模式——命令模式(COMMAND)
命令模式:通过封装一组完全不相关的对象相互之间的的交互及通讯来完成松耦合。允许某一个对象的行为的变化是独立于其他对象的。优点1.降低对象之间的耦合度。2.新的命令可以很容易地加入到系统中。3.可以比较容易地设计一个组合命令。4.调用同一方法实现不同的功能缺点使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体命令类,这将影响命令...
2018-04-25 18:21:55 192
原创 Java设计模式——行为模式——职责链模式(Chain of Responsibility)
责任链模式:将能够处理同一类请求的对象连成一条链,使这些对象都有机会处理请求,所提交的请求沿着链传递。从而避免请求的发送者和接受者之间的耦合关系。链上的对象逐个判断是否有能力处理该请求,如果能则就处理,如果不能,则传给链上的下一个对象。直到有一个对象处理它为止。特点 1)被观察者需要持有一个或者多个观察者对象。 2)系统中一个模块的变化,某些模块也会跟随着变化。UML在责任链模式中,作为请求接...
2018-04-25 16:32:23 187
原创 Java设计模式——结构型模式——代理模式(PROXY)
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式: 人如其名,代理相信大家都可以经常看到什么什么代理,现实中代理太多了。感受最真实的是火车票的代理,经常可以在街上看到,你买票的是在代理商买的,但是付的钱依然会交给铁大哥,这就是代理。现实中的你可能会接触的例子就是叫同学...
2018-04-17 18:07:13 156
原创 Java设计模式——结构型模式——享元模式(FLYWEIGHT)
享元模式(Flyweight Pattern),又称轻量级模式(这也是其英文名为FlyWeight的原因),通过共享技术有效地实现了大量细粒度对象的复用。也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。在了解享元模式之前我们先要了解两个概念:内部状态、外部状态。 内部状态:在享元对象内部不随外界环境改变而改变的共享部分。 外部状态:...
2018-04-17 17:43:13 130
原创 Java设计模式——结构型模式——外观模式(FACADE)
外观模式: 又称门面模式: 他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 (1) Facade(外观角色):在客户端可以调用它的方法,在外观角色中可以知道相关的(一个或者多个)子系统的功能和责任;在正常情况下,它将所有从客户端发来的请求委派到相应的子系统去,传递给相应的子系统对象处理。...
2018-04-17 17:08:13 234
原创 Java设计模式——结构型模式——装饰器模式(DECORATOR)
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。设计原则要使用装饰者模式,需要满足以下设计原则: 1、多用组合,少用继承 2、开放-关闭原则:类应该对拓展开放,对修改关闭UML类图由上自下...
2018-04-17 16:38:07 323
原创 Java设计模式——结构性模式——组合模式(COMPSITE)
组合模式,又称为 部分整体模式,把具有相似的一组对象 当做一个对象处理,用一种树状的结构来组合对象,再提供统一 的方法去访问相似的对象,以此忽略掉对象与对象容器间的差别。组合模式允许你将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合。组合模式实现的最关键的地方是——简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进行一致...
2018-04-05 14:19:29 1587 2
原创 Java设计模式——结构型模式——桥接模式(BRIDGE)
桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。UML图抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。修正抽象化(Refined Abstraction)角色:扩展抽象化角色,改变和修正父类对抽象化的定义。...
2018-04-05 13:53:33 252
原创 Java设计模式——结构性模式——适配器模式(ADAPTER)
适配器模式(Adapter)把一个类的接口变换成客户端所期待的另一种接口,从而 使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。两种适配器模式:根据适配器类与适配者类的关系不同,适配器模式可分为 类适配器 和 对象适配器两种,类适配器模式通过重继承对一个接口与另一个接口进行匹配,而对象适 配器则是 引用 关系。类适配器类适配器的三个角色:目标接口(Target):客户所期待的接口,目标是...
2018-04-04 21:53:15 183
转载 常见排序算法及对应的时间复杂度和空间复杂度
常见排序算法及对应的时间复杂度和空间复杂度排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内...
2018-04-01 19:54:11 152
java算法大全源码包
2017-10-16
github使用指南(git说明)
2017-10-13
hadoop权威指南中文版
2017-10-13
前端问题导入fusioncharts-suite-xt没有显示
2017-04-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人