关闭
当前搜索:

第26章《享元模式》

1.定义 享元模式就是:运用共享技术有效地支持大量细粒度的对象。 2.适用场景 如果一个程序使用了大量的对象,而大量的这些对象造成了很大的开销时就应该考虑使用。 对象的大多数状态是外部状态,如果删除对象的外部状态,就可以用相对较少的共享对象取代很多组对象,此时可以考虑使用享元模式。 享元模式通常用于底层设计。 3.UML图 4.劣势 使用享元......
阅读(20) 评论(0)

第25章《中介者模式》

1.定义 用一个对象来封装一系列的对象交互。中介者使各对象不需要显示的互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 2.优点 中介者的出现降低了各个交互对象之间的耦合性,使得可以独立和复用所有的交互对象类、中介者类。 由于把对象如何协作进行了抽象,将中介作为一个独立的概念并将其封装在一个对象中,这样关注的对象就从对象各自本身的行为转移到了它们之间的交互上来,也就是站在一个......
阅读(19) 评论(0)

<mou语法>

《markdown教程》 1.标题快捷键: 1.1.cmd+1:一级标题 1.2.cmd+2:二级标题 1.3.cmd+3:三级标题…到六级的方式都一样的 2.文字修饰 2.1.加粗: 说明:实现方式:文字左右分别加上2个*号或_ 我加粗了嘛?yes 我加粗了嘛?no 我加粗了嘛?yes 2.2.斜体: 说明:实现方式:文字左右分别加上1个*号...
阅读(31) 评论(0)

第24章《职责链模式》

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

第23章《命令模式》

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

第22章《桥接模式》

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

第20章《迭代器模式》

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

第19章《组合模式》

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

Java Stream API性能测试

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

java中将数组array转为ArrayList

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

第18章《备忘录模式》

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

第17章《适配器模式》

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

第16章《状态模式》

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

第15章《抽象工厂模式》

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

第14章《观察者模式》

1、准确定义: 定义了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题的对象。这个主题对象在状态在发生变化时,会通知所有的观察者对象,让它们能够自动更新自己。 2、使用的意义: 讲一个系统分割成一系列相互协作的类有一个不好的副作用,那就是需要维护相关对象的一致性。我们不希望为了维持一致性而使得各类紧密耦合,这样会给维护、扩展、重用带来不便。而观察者模式的关键对象是主题...
阅读(22) 评论(0)
357条 共24页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:134844次
    • 积分:3290
    • 等级:
    • 排名:第12270名
    • 原创:182篇
    • 转载:167篇
    • 译文:8篇
    • 评论:25条
    博客专栏
    最新评论