自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iCoding91

if u like it~ just do it~ it's that simple~

  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 第24章《职责链模式》

1、定义:使得多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。从定义分析:(1)对于一个请求会有多个对象对其进行转发。(2)请求的发送者和最终处理请求的接受者之间互相并不知道,没有任何耦合关系。(3)最终能够处理一个请求的对象有且只有一个,如果没有则表示处理过程or职责链设置出现错误。

2018-01-28 11:40:20 233

原创 第23章《命令模式》

1、定义:将一个请求封装为一个对象,从而可以使用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。2、优势:2.1、能较容易的设计一个命令队列。2.2、在需要的情况下,可以较容易的将命令记入日志。2.3、允许接受请求的一方决定是否要否决请求。2.4、可以容易的实现对请求的撤销和重做。2.5、由于加进具体命令类不影响其他的类,因此增加新的具体命

2018-01-26 17:34:24 236

原创 第22章《桥接模式》

1、定义:将抽象部分和它的实现部分分离,使它们都可以独立的变化。这个定义真的很拗口,然后GoF的定义,我也是读了好几遍,还是有点蒙圈。还好书里有一个比较通俗的解释:实现系统可能会有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减少它们之间的耦合。举个例子:手机的实现可以通过先按照品牌分类,然后在品牌下再按照功能分类;也可以先按照功能分类,然后每个功能

2018-01-26 11:34:17 290

原创 第20章《迭代器模式》

1、定义:提供一种方法顺序访问一个对象中各个元素,而又不暴露对象的内部表示。2、实际应用:由于现在高级语言,比如java、c#都已经把迭代器模式集成在语言中了,所以这个模式没有什么实用价值,但是有学习价值,我们还是可以了解一下迭代器模式内部是怎么实现的。3、对ArrayList的迭代器源码的分析:3.1、对ArrayList迭代器源码及其分析:(1)JDK8

2018-01-24 23:16:48 256

原创 第19章《组合模式》

1、定义:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的适用具有一致性。2、适用场景:2.1、需求中是体现部分与整体层次的结构时;2.2、希望用户可以忽略组合对象和单个对象的不同,统一的使用组合结构中的所有对象时;满足以上两点,则应该考虑 使用组合模式。3、优势:3.1、客户代码中,任何使用到基本对象的地方都可

2018-01-24 21:11:14 222

转载 Java Stream API性能测试

转自:http://www.cnblogs.com/CarpenterLee/p/6675568.html已经对Stream API的用法鼓吹够多了,用起简洁直观,但性能到底怎么样呢?会不会有很高的性能损失?本节我们对Stream API的性能一探究竟。为保证测试结果真实可信,我们将JVM运行在-server模式下,测试数据在GB量级,测试机器采用常见的商用服务器,配置

2018-01-18 09:21:23 2172 4

原创 java中将数组array转为ArrayList

1、非基本数据类型的数组,如String类、自定义类等的类型数组等。这里以String[]为例,假设已知字符串数组String[] strs,1.1、ArrayList list=new ArrayList这一方式利用了ArrayList的构造函数,故list是一个新的ArrayList实例,可以调用任何ArrayList类的可使用方法。据说这也是StackOverFlow上面最受欢迎

2018-01-17 23:48:58 4266 1

原创 第18章《备忘录模式》

1、定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。2、功能:2.1、当角色的状态改变时,有可能这个状态无效,这时候就可以使用暂存起来的备忘录将状态复原。2.2、实现命令的撤销功能。命令模式可以使用备忘录来存储可撤销操作的状态。3、适用场景:Memento模式适用于:功能比较复杂的,

2018-01-16 23:05:51 274

原创 第17章《适配器模式》

1、准确定义:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2、适用场景:2.1、两个类所做的事情相似或者相近,但具有不同的接口时,要使用适配器模式。2.2、通常在软件开发的后期或者维护期考虑使用。2.3、如果在软件开发的初期就使用,那么通常是使用了第三方组件,而这个组件的接口和我们自己的系统接口不

2018-01-16 21:06:14 229

原创 第16章《状态模式》

1、准确定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。2、解决的问题:状态模式主要用于解决:当控制一个对象状态转换的表达式过于复杂时。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的逻辑简化。3、优势:将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。4、适用场景:当一个对象的行为取决于它的状

2018-01-15 19:35:02 205

原创 第15章《抽象工厂模式》

1、工厂模式和抽象工厂模式的区别:工厂模式适合具体功能类ConcreteProductX只有一个系列的情况;抽象工厂模式适合一个具体功能类ConcreteProductX有至少两个系列的情况。2、抽象工厂模式准确定义:提供一个创建一系列相关或相互依赖的接口,而无需指定它们具体的类。3、抽象工厂模式的优点:3.1、易于交换产品系列,这是最大的优点。通过改变

2018-01-14 20:42:42 272

原创 第14章《观察者模式》

1、准确定义:定义了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题的对象。这个主题对象在状态在发生变化时,会通知所有的观察者对象,让它们能够自动更新自己。2、使用的意义:讲一个系统分割成一系列相互协作的类有一个不好的副作用,那就是需要维护相关对象的一致性。我们不希望为了维持一致性而使得各类紧密耦合,这样会给维护、扩展、重用带来不便。而观察者模式的关键对象是主题

2018-01-10 09:29:28 201

原创 第13章《建造者模式》

1、准确定义: 将一个复杂对象的创建和表示分离,使得同样的创建过程可以得到不同的表示。2、适用场景:用于创建一些复杂的对象,这些对象内部构建间的顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。3、优势:使得建造代码和表示代码分离。由于建造者隐藏了产品是如何组装的,因此如果需要改变一个产品的内部表示时,只需要再添加一个ConcreteB

2018-01-08 21:15:22 197

原创 第12章《外观模式》

1、准确定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。2、优势:完美体现了依赖倒转原则和迪米特法则。3、适用场景:3.1、在软件设计初期阶段,应有意识的将不同的两个层分离,然后在两个层之间建立一个Facade。3.2、在开发阶段,子系统往往因为不断的重构演化而变得复杂。通过增加外观

2018-01-07 21:17:12 178

原创 第10章《模版方法模式》

1、规范定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。重定义操作通过覆写模版方法里面的抽象方法而实现。2、实质:通过把不变行为迁移到超类,去除子类中的重复代码。3、优势:模版方法模式提供了一个很好的代码复用平台。4、应用场景:当我们要完成

2018-01-07 20:46:46 198

原创 第9章《原型模式》

1、原型模式的规范定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的实例。2、原型模式的实质:利用一个指定的对象实例,再创建一个同类型的对象实例,且这个新对象可以被定制,而且不需要知道创建的细节。3、在java中的实现方式:一个类只要实现了Cloneable()接口,就能作为原型被复制。当创建一个同类型的新实例时,可以通过调用这个类的clone()方

2018-01-07 13:17:01 317

原创 第8章《工厂方法模式》

1、工厂方法和简单工厂的对比:1.1、添加新功能时,二者的区别:(1)简单工厂需要完成工作:添加一个新功能类+更改工厂类(2)工厂方法需要完成工作:添加一个新功能类+添加一个生成对象的工厂+更改客户端实例化工厂的代码1.2、二者共同点:集中封装了对象的创建,使得要更换对象时,不需要做大的动作就可实现,降低了客户端程序和产品对象的耦合。2、工厂方法的优点:2.

2018-01-06 10:53:35 236

原创 就是测试一下这个新版本的换行排版问题

1、一级标题,手动换行到小标题 1.1、手动空格换行 1.2、手动空格换行2、一级标题 2.1、tab换行2.2、tab换行3、一级标题                3.1、空格+tab换行                                 3.2、空格+tab换行

2018-01-04 15:04:23 212

原创 第7章《代理模式》

1、规范定义:为其它对象提供一种代理,以控制对这个对象的访问。                      通俗的讲,就是本来C是要访问S的,但是通过加入代理P后,C不需要知道S是谁,C直接访问P,P通过自己的内部逻辑,去访问S,这就实现了C最终还是调用到了S的方法,只是不是自己直接调用,而是通过代理P调用的。2、代理模式结构图:    说明:      (1)通过继承S

2018-01-03 21:44:30 256

原创 第6章《装饰模式》

1、定义:动态的给一个对象添加一些额外的功能 。2、实现方式:把每个装饰的功能放在单独的类,并让这个类包装它所要修饰的对象。3、优点:有效地把类的核心功能和装饰功能分开;去除相关类中重复的装饰逻辑。4、适用场景:当系统需要添加的新功能,而这些新功能只是为了对曾经的主类做一些修饰,只在特定情况下才会执行的特殊行为。这些新功能代码当然可以添加到原有的主类里,但是这一

2018-01-02 22:24:01 184

原创 第2章《策略模式》

1、策略模式实质:封装了变化点。2、策略模式定义:是一种定义了一系列算法的方法。说明:这些算法完成的工作都是一样的,只是实现方式不同而已(比如,商场促销,满1000减100和打九折,这就是两个算法,但完成的工作是一样的,你想,你去商场买衣服,付款时候,只能是使用其中一种策略减少付款金额,而不能叠加使用,所以完成的工作是一样的。)3、策略模式适用场景:通过其特点就能知道它

2018-01-01 13:30:01 312

itext-2.1.7jar包相关

是在csdn上面下载的,亲测可用,解决了我的问题。本来想免积分的,但是最小竟然是2分,反正还是比其他人少了,只能这样了,之前csdn可以有0积分下载的,但是这个为什么不行我也就不知道了

2018-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除