- 博客(57)
- 资源 (8)
- 收藏
- 关注
原创 图解设计模式 - Interpreter 模式
读书笔记 仅供参考简述在 Interpreter 模式中,需要编写一个“翻译程序”,翻译自己定义的“迷你语言”,可以通过“迷你语言”编写“迷你程序”。角色和 UMLAbstractExpression定义了语法树节点的共同接口(API)。TerminalExpression对应 BNF 中的终结符表达式。NonterminalExpression对应 BNF 中的非终结符表达式。Context为解释
2017-12-27 17:02:14
733
原创 图解设计模式 - Command 模式
读书笔记 仅供参考简述Command 模式是使用表示命令的类来代替方法的调用,这样就可以管理工作的历史记录。角色和 UMLCommand定义命令的接口(API)。ConcreteCommand负责实现在 Command 角色中定义的接口(API)。Receiver是 Command 角色执行命令时的对象,可以称为命令接收者。Client负责生成 ConcreteCommand 角色并分配 Recei
2017-12-27 11:53:05
1031
原创 图解设计模式 - Proxy 模式
读书笔记 仅供参考简述Proxy, 代理模式,代替一些类进行工作。角色和 UMLSubject定义了使 Proxy 角色和 RealSubject 角色具有一致性的接口。Proxy角色会尽量处理来自 Client 角色的请求。只有当自己不能处理的时候,才会将工作交给 RealSubject 角色。Proxy 只会在必要时才会生成 RealSubject 角色。RealSubject在 Proxy 角
2017-12-26 20:29:18
409
原创 图解设计模式 - Flyweight 模式
读书笔记 仅供参考简述可以翻译成享元模式,通过尽量共享实例来避免 new 出实例。角色和 UMLFlyweight实例会被共享的类。FlyweightFactory生成 Flyweight 的工厂,在工厂中实现共享实例。Client使用 FlyweightFactory 生成 Flyweight。UML例子例程是一个显示字符串的程序,但是其中的字符是 BigChar,即是由字符串构成的字符:....
2017-12-26 17:41:09
454
原创 图解设计模式 - State 模式
读书笔记 仅供参考简述State 模式就是用类表示状态,从例子来看比较清晰角色和 UMLState表示状态,定义根据不同状态进行不同处理的接口(API)。ConcreteState各个具体的状态。Context角色持有表示当前状态的 ConcreteState 角色。定义了供外部调用者使用 State 模式的接口(API) 。UML例子例程是一个使用金库的 GUI 程序,有使用金库,按下警铃和拨通电
2017-12-26 16:58:02
416
原创 图解设计模式 - Memento 模式
读书笔记 仅供参考简述Memento,备忘录模式,主要用于 Undo, Redo,History,Snapshot 等功能。事先将某个时间点的实例的状态保持下来,之后再有必要时,再将实例恢复至当时的状态。角色和 UMLOriginator在保存自己的最新状态时生成 Memento 角色。当把以前的 Memento 角色传给 Originator 时,会自动恢复。Memento将 Originator
2017-12-24 16:18:20
264
原创 图解设计模式 - Observer 模式
读书笔记 仅供参考简述观察者模式,当观察对象的状态发生变化时,会通知给观察者。适用于根据对象状态进行相应处理的场景。角色和 UMLSubject该角色表示观察对象,定义了注册观察者和删除观察者的方法,同时声明了获取现在状态的方法。ConcreteSubject具体的被观察对象,自身状态改变后,会通知已经注册的 Observer 对象。Observer负责接收来自 Subject 角色的状态变化的通知
2017-12-24 14:54:09
259
原创 图解设计模式- Mediator 模式
读书笔记 仅供参考简述Mediator 就是 仲裁者(中介者)模式。如果将程序看作许多类作为一个团队进行工作,那么团队的交流过程就是组员向仲裁者报告,仲裁者向组员下达指标,组员之间不再相互询问。角色和 UMLMediator角色负责定义与 Colleague 角色进行通信和做出决定的接口(API)。ConcreteMediator负责实现 Mediator 角色的接口(API)。Colleague(
2017-12-22 22:01:28
303
原创 图解设计模式 - Facade 模式
读书笔记 仅供参考简述使用 Facade 模式为互相关联在一起的错综复杂的类整理出高层接口(API),让系统对外只有一个简单的接口(API),还可以考虑到系统内部各个类之间的责任关系和依赖关系,按照正确的顺序调用哥哥类。角色和 UMLFacade向系统外部提供高层接口(API)构成系统的许多其它角色这些角色不能感知到 Facade 角色Client负责调用 FacadeUML例子例程是一个根据邮箱地
2017-12-20 19:48:16
659
原创 图解设计模式 - Chain of Responsibility
读书笔记 仅供参考简述职责链模式将多个对象组成一条职责链,然后按照他们在职责链上的顺序一个个找出到底应该谁负责处理。也是推卸责任的结构。角色和 UMLHandler定义了处理请求的接口(API),该角色知道下一个处理者是谁,如果自己无法处理,将请求转发给下一个。ConcreteHandler处理请求的具体角色Client向第一个 ConcreteHandler 角色发送请求的角色。UML 例子例程是
2017-12-15 12:59:25
246
原创 图解设计模式 - Visitor 模式
读书笔记 仅供参考简述通常将数据结构和处理数据的代码放到同一个类中,但是如果有多种处理方式,增加处理方式就会多次修改数据类。Visitor 模式(访问者模式)将数据结构与处理分离开来,增加新的处理时,只需要编写新的访问者就可以了。UML 和角色Visitor负责对数据结构中每个具体的元素(ConcreteElement 角色)声明一个用于访问的 visit 方法。ConcreteVisitor负责实
2017-12-14 14:11:49
329
原创 图解设计模式 - Decorator 模式
读书笔记 仅供参考简述Decorator 模式(装饰着模式)是维持装饰边框和装饰物的一致性,为对象增加新的功能,但是它还是原来的对象UML 和角色Component增加功能的核心角色,就像是一块蛋糕(抽象),可以被添加很多奶油和水果。Component 定义了蛋糕的接口(API)。ConcreteComponent实现了 Component 角色定义的接口(API)的具体蛋糕。Decorator具有
2017-12-12 21:52:25
445
原创 图解设计模式 - Composite 模式
读书笔记 仅供参考简述Composite 是混合物,复合物的意思。类似与“文件夹”的概念,文件夹当中可以放文件也可以放文件夹,文件夹形成了一种容器结构、递归结构,有时文件和文件夹当作同一种对象看待。 Composite 模式就是创造这样结构的模式。能够使容器与内容具有一致性,创造出递归结构。UML 和角色Leaf表示“内容”的角色,在该角色中不能放入其他对象,就像一个文件Composite表示容器
2017-12-11 20:55:25
329
原创 图解设计模式 - Strategy 模式
读书笔记 仅供参考策略模式策略模式就是可以整体地替换算法,可以轻松地以不同的算法去解决同一个问题。角色和 UMLStrategy负责决定实现策略(算法)哦接口(API)ConcreteStrategy负责实现 Strategy 定义的接口(API)Context负责使用 Strategy 角色UML例子例程是一个猜拳的程序,有两种猜拳策略,一是上一局赢了就不变手,输了就随机出,二是根据之前所有的出拳
2017-12-08 21:48:50
274
原创 java 操作上传下载 HDFS:could only be replicated to 0 nodes instead of minReplication (=1). There are 1 da
环境阿里云服务器 伪分布模式 版本:2.9.0,java 1.8 配置:http://blog.csdn.net/u012453843/article/details/52431742代码//上传文件public static void main(String[] args) throws Exception { Configuration configuration = n
2017-12-08 17:00:32
668
原创 图解设计模式 - Bridge 模式
读书笔记 仅供参考Bridge 模式将类的功能层次结构和类的实现层次结构相连接类的层次结构类的功能层次结构父类具有基本结构在子类中增加新的功能类的实现层次结构父类通过声明抽象方法来定义接口(API)子类通过实现具体方法来实现接口(API)UML 和角色Abstraction位于“功能层次结构”顶层,角色保存了 Implementor 的实例RefinedAbstraction继承 Abs
2017-12-06 21:23:01
354
原创 图解设计模式 - Abstract Factory 模式
读书笔记 仅供参考Abstract Factory抽象工厂的工作室将抽象零件组装为抽象产品。 我们并不关心零件的具体实现,而是只关心接口(API)。我们仅使用该接口(API)将零件组装成为产品。UML 和角色AbstractProduct负责定义 AbstractFactory 角色所生成的抽象零件和产品的接口(API)AbstractFactory负责定义用于生成抽象产品的接口(API)Conc
2017-12-05 20:32:36
444
原创 图解设计模式 - Builder 模式
读书笔记 仅供参考Builder 模式用于组装具有复杂结构的实例。角色和 UMLBuilder:负责定义用于生成实例的接口。 ConcreteBuilder:负责实现 Builder 角色的接口。定义了在生成实例时实际被调用的方法,还定义了获取最终生成结果的方法。 Director:负责使用 Builder 角色的接口来生成实例。 Client: 该角色来使用 Builder 模式(可以忽略)
2017-11-28 20:29:26
398
原创 图解设计模式 - Prototype 模式
读书笔记 仅供参考Prototype 模式有时会出现“在不指定类名的前提下生成实例”的情况,就是根据实例生成实例,这就是原型模式。 以下情况需要使用原型模式对象种类繁多,无法将它们整合到一个类中需要处理的对象太多,如果将它们分别作为一个类,必须要编写许多个类。难以根据类生产实例生成实例的过程太过复杂,很难根据类来生成实例,所以需要通过复制来生成新的实例。想解耦框架与生成的实例想要生成实例的框架不依
2017-11-27 20:03:41
228
原创 图解设计模式 - Singleton 模式
读书笔记 仅供参考Singleton 模式Singleton 模式是为了满足“只能创建一个实例”的需求。想确保任何情况下都绝对只有一个实例想在程序上表现出“只存在一个实例”UML代码Singleton 类,单例类public class Singleton { private static Singleton singleton = new Singleton(); priva
2017-11-26 19:54:17
240
原创 图解设计模式 - Factory Method 模式
读书笔记 仅供参考Factory Method将模板方法模式用于生产实例,就是工厂方法模式了。在 Factory Method 模式中,父类决定了实例的生成方式,但是并不决定所要生成的具体的类,具体的处理交给子类负责。UML 和角色ProductProduct 是一个抽象类,定义了在模式中生成的实例所需要实现的接口,具体的处理由子类 ConcreteProduct 决定。CreatorCreator
2017-11-25 14:49:13
446
原创 图解设计模式 - Template Method 模式
读书笔记 仅供参考什么是 Template Method 模式模板方法模式是带有模板功能功能的模式,组成模板的方法被定义在父类中,方法都是抽象方法,唯一知道的就是父类如何调用这些方法。实现抽象方法的是子类,在不同的子类中有不同的实现处理,但是处理的流程都按照父类所定义的进行。 父类中定义处理流程的框架,在子类中实现具体处理。 这个模式基本上就是实现继承,主要是在父类中多了一个定义处理流程的方法。
2017-11-24 20:27:29
398
原创 图解设计模式 - Adapter 模式
读书笔记 仅供参考Adapter 模式Adapter 即为是适配器,用来填补两者之间的差异。就想充电器的装换器,要把 220v 的电压转换为低电压才能对手机或电脑充电。 Adapter 模式也称为 Wrapper(包装器)模式。 两种 Adapter 模式:类适配器模式(使用继承的适配器)对象适配器模式(使用委托的适配器)角色Client 类是客户端,调用适配器。 Adaptee 是需要
2017-11-23 21:12:12
2279
原创 图解设计模式 - Iterator 模式
读书笔记 仅供参考Iterator 模式即为迭代器模式,用于在数据集合中按照顺序遍历集合。Iterator(迭代器)负责定义按顺序逐个遍历元素的方法,本身是一个接口,例如下面示例程序的 hasNext 和 next 方法。ConcreteIterator(具体的迭代器)实现 Iterator 定义的方法,例如程序中的 BookShelfIterator,在这个示例中应该存在需要遍历的集合(BookS
2017-11-21 21:13:06
326
原创 Effective Java - 类和接口 - 优先考虑静态成员类
读书笔记 仅供参考嵌套类嵌套类是指被定义在一个类内部的类,存在的目的应该只是为它的外围类提供服务。 四种嵌套类静态成员类非静态成员类匿名类局部类后面三种被称为内部类。静态成员类静态成员类可以认为是碰巧被声明在另一个类的内部而已。 静态成员类常见用法是作为公有的辅助类,这个公有是指的外围类的实例。非静态成员类从语法上讲,与静态成员类的区别就是没有 static 修饰符。其实有很大不同。
2017-11-20 20:51:44
211
原创 Effective Java - 类和接口 - 用函数对象表示策略
读书笔记 仅供参考函数指针,代理,lambda就是将函数存储起来并传递,之前的 java 是不支持的,所以有这一章的替代内容,但是 1.8 已经支持 lambda。策略模式例子:比较器函数 在 c 语言中,qsort 函数要求使用一个指向比较器函数的指针作为参数,不同的比较器函数可以得到不同的排序结果,这就是一种策略函数对象如果一个类仅仅导出一个方法,它的实例就等同于一个指向该方法的指针,这样的实
2017-11-20 20:31:55
244
原创 Effective Java - 类和接口 - 类层次优于标签类
读书笔记 仅供参考标签类一种带有多种风格实例的类 下面这个可以代表圆和矩形class Figure { enum Shape {RECTANGLE, CIRCLE}; final Shape shape; double length; double width; double radius; Figure(double raduis) {
2017-11-20 20:15:51
241
原创 Effective Java - 类和接口 - 接口只用于定义类型
读书笔记 仅供参考当类实现实现接口时,接口就可以充当引用这个类的实例的类型。为了任何其他目的而定义接口是不恰当的。常量接口这种接口不包含任何方法,只包含静态的 final 域。 常量接口模式是对接口的不良使用。正确方法使用枚举使用不可实例化的工具类
2017-11-20 20:02:32
221
原创 Effective Java - 类和接口 - 接口优于抽象类
读书笔记 仅供参考接口和抽象类抽象类允许某些方法的实现,但是接口不允许(JDK 1.8 已经运行了)现有类必须成为抽象类的子类,但是只能单继承,接口可以多继承接口优点现有类可以很容易被更新,以实现新的接口只需要在接口中添加方法就可以了接口是定义 mixin (混合类型)的理想选择mixin:类除了实现它的“基本类型”之外,还可以实现 mixin 类型,表明它提供了可供选择的行为,例如 Comp
2017-11-17 20:42:43
384
原创 Effective Java - 类和接口 - 要么为继承而设计,并提供文档说明,要么就禁止继承
读书笔记 仅供参考文档需要说明该方法调用了哪些可覆盖的方法,以什么顺序,调用结果有什么影响,在哪些情况会调用可覆盖的方法 决定应该暴露哪些受保护的方法或域是很难的。 对于为了继承而设计的类,唯一的测试方法就是编写子类(3个就可以测试) 构造器不能调用可被覆盖的方法
2017-11-17 20:01:55
328
原创 Effective Java - 类和接口 - 复合优先于继承
读书笔记 仅供参考继承的安全性(非接口)继承使用不当,会导致软件变得脆弱。 在包的内部使用继承是安全的,子类和超类的受一个程序员控制。 专门为继承而设计,具有良好文档说明的类是安全的。 跨包继承就是很危险的,继承打破了封装性,简单的说,不知道一些类的内部是如何实现的,随便加功能并且依靠超类的实现就是不靠谱的。 超类还会继续演进,子类新加的方法或域可能会超类冲突解决办法使用复合,产生一个包装类
2017-11-17 19:33:53
307
原创 Docker 命令记录
记录一下 Docker 的命令 Docker 的命令针对的对象一般两个:image 和 container镜像(image )列出所有镜像docker images搜索镜像docker search xxxx 会从仓库中搜索镜像,附带镜像信息下载镜像docker pull name[:tag] name 是镜像名,tag 是版本号,默认是 lasted删除镜像docker rmi image_
2017-11-17 16:14:34
236
原创 windows 上初次安装 node,react
今天尝试在 windows 上安装 node.js 和 react 及脚手架下载安装 nodewindows 上安装十分方便。 https://nodejs.org/en/ 下载后直接安装即可,会自动配置环境变量. 输入:node -vnpm -v检验是否安装成功。修改源修改源是为了解决网络问题。 输入npm config set registry “https://registry
2017-11-14 20:16:41
260
原创 Effective Java - 类和接口 - 使可变性最小化
读书笔记 仅供参考不可变类不可变类就是实例不能被修改的类,每个实例中包含的所有信息都必须在创建该实例的适合提供,并一直固定不变 不可变类比可变类更加易于设计、实现和使用,不容易出错,且更加安全五条规则不提供任何修改对象状态的方法保证类不会被扩展所有域都是 final所有域都是私有确保对于任何可变组件的互斥访问(对可变对象的引用)函数的做法方法返回一个函数的结果,函数对操作数进行运算但是
2017-11-14 13:45:31
256
原创 Effective Java - 类和接口 - 在公有类中使用访问方法而非公有域
读书笔记 仅供参考即类数据域应该封装,使用 getter 和 setter 方法来读写包级私有或私有的嵌套类,可以直接暴露数据域
2017-11-14 13:07:02
199
原创 Effective Java - 类和接口 - 使类和成员的可访问性最小化(java 访问级别)
读书笔记 仅供参考封装:隐藏了模块的实现细节可以有效地解除系统之间的耦合关系对于顶层的类和接口,只有两种可能的访问级别:包级私有(即缺省)和 public。包级私有意味着是这个包的实现的一部分,而 public 意味着是包的 API 的一部分。需要降低不必要 puclic 类的可访问性。private:只有在声明该成员的类内部可用default:声明该成员的包内部的类都可以访问protecte
2017-11-13 21:08:55
242
原创 Effective Java - 对于所有对象都通用的方法 - 考虑实现 Comparable 接口
读书笔记 仅供参考compaerTocompareTo 方法没有在 Object 中声明,而是 Comparable 接口中唯一的方法,类实现了 Comparable 接口,就代表可以进行排序。//可以简单地对数组进行排序Arrays.sort(a);一旦实现了 Comparable 接口,就可以和许多泛型算法和依赖于该接口的集合实现进行协作。public interface Comparable
2017-11-13 20:45:05
209
原创 Effective Java - 对于所有对象都通用的方法 - 谨慎地覆盖 clone
读书笔记 仅供参考Cloneable 接口Cloneable 借口表明这样的对象允许克隆,但是它缺少 clone 方法。 Object 拥有一个 受保护的 clone 方法,如果不采用反射,无法调用。 Cloneable 中并没有方法,它只是决定了 Object.clone() 的实现行为:如果一个类实现了 Cloneable,clone 方法就会返回对象的逐级拷贝,否则抛出 CloneNotS
2017-11-13 20:16:48
248
原创 mybatis 分页插件和插件的安装方法
今天寻找一个 mybatis 的分页方法,后来寻找到一个不错的插件,顺便记录 mybatis 如何安装插件分页插件网上的关于 mybatis 分页插件有很多,最后采用的这个。 ps:mybatis 原本采用的是内存分页。 git地址 maven 依赖<dependencies> ... <dependency> <groupId>com.github.miemied
2017-11-11 21:02:57
545
原创 Effective Java - 对于所有对象都通用的方法 - 始终要覆盖 toString
读书笔记 仅供参考不覆盖 toStringObject 提供了一个 toString 方法的实现,但是它返回不是用户希望得到的关于类中信息的字符串,而是 PhoneNumber@163b91,这种由 类名+@+16进制 hash code。 不覆盖的话,在调试的时候打出的日志完全没有办法去识别信息。覆盖toString 方法应该返回对象中包含的所有值得关注的信息。 toString 方法的格式应
2017-11-11 20:35:01
184
尽在双11:阿里巴巴技术演进与超越
2017-12-28
Spring源码深度解析
2017-12-28
Hadoop权威指南(第3版) 修订版
2017-12-27
Java并发编程实战
2017-12-27
领域驱动设计:软件核心复杂性应对之道
2017-12-27
Tensorflow 实战Google深度学习框架
2017-12-27
SPRING技术内幕:深入解析SPRING架构与设计原理
2017-12-27
图解设计模式+代码
2017-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人