到了最后的几种模式, 其实已经超过了简单对象的范畴, 都是复杂对象的组合了. 可以说是一种更大层面上的设计模式了. Flyweight 享元模式 练习 Proxy 代理模式 练习 Command 命令模式 练习 Flyweight 模式 这个模式的关键在于通过共享空间来避免new实例出来. 这个其实
管理状态一直是程序中一个很重要的因素, 毕竟从本质上说计算机就是一个状态机, 程序不过是改变计算机中电子的分布状态而已. Observer 观察者模式 练习 Memento 备忘录模式 练习 State 状态模式 练习 Observer 模式 这个模式相当经典, 一定要好好看, 其本质是在自身状态发
Facade 外观模式 练习 Mediator 仲裁者模式 练习 Facade 模式 这个模式其实很简单, 就是如果一个程序内部很复杂, 与其对外要求程序的使用者先做这个在做这个, 不如用一个东西包装一下, 用一个窗口对外即可. 用术语就是将互相关联在一起的类整理出高层接口API, Facade角色
Visitor 访问者模式 练习13-1 练习13-2 练习13-3 Chain of Responsibility 职责链模式 练习 Visitor 访问者模式 访问者模式用来访问一个数据结构. 虽然在刚学面向对象的时候, 说数据的自身处理和数据放在一起, 集成成为对象. 但如果要解耦的话, 实际
已经看完了8个模式, 继续前进了. Bridge 桥接模式 练习 Strategy 策略模式 Composite 组合模式 练习 Decorator 装饰器模式 Bridge 桥接模式 桥接模式用来连接功能层次结构和实现层次结构. 听上去有点抽象, 什么是功能层次结构和实现层次结构. 我看了一下书上
对于面向对象的语言, 如何创建对象一直是一大学问, 这一章就是各种和创建对象有关的模式. Singleton 单例模式 练习 Prototype 原型模式 练习 Builder 建造者模式 练习 Abstract Factory 抽象工厂 练习 Singleton 单例模式 单例模式可不简单的是我自
这一部分是模板模式, 外加模板模式的应用, 就是工厂模式. 多个互相组织好交互模式的模板, 就构成了框架. 这是我看这一部分最核心的心得. Template Method 模板模式 练习 Factory Method 工厂模式 练习 模板模式 什么是模板, 其实就是一套早已规定好的东西, 整体的操作
Java 编程思想看完, 重新强化了一下Java基础之后, 觉得功力有点增加了, 现在可以考虑看设计模式了. 果然, 现在发现可以很容易的就看明白了, 不像几个月以前感觉还是看天书一样. 这次就结合图解设计模式这本书来过一遍. 在看的过程中发现这本书写的相当早, 是在2001年就成书了, 其中的一些
资源共享和终止的例子 线程状态 打断任务 线程协作 生产者消费者模型 同步队列 管道 之前的线程都是一个运行到自己结束的任务, 但有些时候, 多线程程序的各个线程是一直在工作的, 需要得到外部的消息来是否继续运行. 同时各个线程也会有共享数据, 比如一个统计多个门进入人数的程序: import ja
CSAPP里讲到并发的时候需要关注程序执行的逻辑流, 如果逻辑流有冲突, 就会造成不可预知的结果, 如果要操作资源, 要先定义好哪一片是临界区域, 在临界区域开头和结尾采取同步方式. 这次就要来看看Java里对于这个是如何使用的. 先记住Java 编程思想的 同步规则: 如果你正在写一个变量, 它可