Java Reinforcement 13 默认方法和Optional类

Java Reinforcement 13 默认方法和Optional类

接口中本来只能有抽象方法, 如果有域会变成静态域, 现在接口新增了默认方法, 其实是让接口更加灵活, 也便于在原来的类的基础上进行扩展出一套新的体系. Java 8 接口的两大变化 一是允许在接口内声明静态方法, 二是一个新功能:默认方法, 可以指定接口方法的默认实现. 一言以蔽之, 原来接口仅仅是

Java Reinforcement 12 收集器与并行流

Java Reinforcement 12 收集器与并行流

在流中一开始没有讲收集器, 而是学习了规约的一般操作. 这是因为收集器本质上就是一种归约, 但是更加抽象. 收集器 预定义收集器 广义的归约汇总 并行流与ForkJoin框架 收集器 与流搭配使用的收集器是新的java.util.stream.Collector接口, 这个接口本质上也是规约操作,

Java Reinforcement 11 流

Java Reinforcement 11 流

流 流操作的整体步骤 中间操作 - 筛选和切片 中间操作 - 映射 查找 终端操作 - 归约 基本类型特化的流 其他应用 流 流可以说是操作集合的新方法, 结合前边的函数式编程, 可以更高效的编写代码, 可以看成是高级的迭代器. 流有几个术语: 元素序列, 就是一个流对象提供的接口, 可以访问到一组

Java Reinforcement 10  函数式编程

Java Reinforcement 10 函数式编程

Java 8 的新特性主要是三大方面, 一是引入了lambda表达式, 二是引入了Stream流, 三是接口中的默认方法. 在看完了基于Java 5的Thinking in Java之后, 就来补一下Java 8 的知识了. 函数式编程其实在之前自己有看过书学习过, 这里根据《Java 8 实战》这

设计模式 09 Interpreter 解释器模式

设计模式 09 Interpreter 解释器模式

这个解释器模式可以说是终极的设计模式了. 也就是程序语言本身, 就像Java语言一样, 不管写了什么程序, 底层都在复用Java虚拟机. 有了这个东西, 等于只要修改对于问题的描述(语言), 而编写的解释器是一直可以复用的. Interpreter 模式 例子中使用的类 ProgramNode Co

设计模式 08 类的复用

设计模式 08 类的复用

到了最后的几种模式, 其实已经超过了简单对象的范畴, 都是复杂对象的组合了. 可以说是一种更大层面上的设计模式了. Flyweight 享元模式 练习 Proxy 代理模式 练习 Command 命令模式 练习 Flyweight 模式 这个模式的关键在于通过共享空间来避免new实例出来. 这个其实

设计模式 07 管理状态

设计模式 07 管理状态

管理状态一直是程序中一个很重要的因素, 毕竟从本质上说计算机就是一个状态机, 程序不过是改变计算机中电子的分布状态而已. Observer 观察者模式 练习 Memento 备忘录模式 练习 State 状态模式 练习 Observer 模式 这个模式相当经典, 一定要好好看, 其本质是在自身状态发

设计模式 06 简单化

设计模式 06 简单化

Facade 外观模式 练习 Mediator 仲裁者模式 练习 Facade 模式 这个模式其实很简单, 就是如果一个程序内部很复杂, 与其对外要求程序的使用者先做这个在做这个, 不如用一个东西包装一下, 用一个窗口对外即可. 用术语就是将互相关联在一起的类整理出高层接口API, Facade角色

设计模式 05 访问数据结构

设计模式 05 访问数据结构

Visitor 访问者模式 练习13-1 练习13-2 练习13-3 Chain of Responsibility 职责链模式 练习 Visitor 访问者模式 访问者模式用来访问一个数据结构. 虽然在刚学面向对象的时候, 说数据的自身处理和数据放在一起, 集成成为对象. 但如果要解耦的话, 实际

设计模式 04 分离功能和实现 一致性

设计模式 04 分离功能和实现 一致性

已经看完了8个模式, 继续前进了. Bridge 桥接模式 练习 Strategy 策略模式 Composite 组合模式 练习 Decorator 装饰器模式 Bridge 桥接模式 桥接模式用来连接功能层次结构和实现层次结构. 听上去有点抽象, 什么是功能层次结构和实现层次结构. 我看了一下书上