摘要: 在安全性和活跃性之间通常存在着某种制衡 一、死锁 定义:在线程A持有锁L并想获得锁M的同时,线程B持有锁M并尝试获得锁L,线程AB均不会释放自己的锁,那么这两个线程将永远地等待下去 在数据库系统的设中考虑了检测死锁以及从死锁中恢复。JVM没有办法解决死锁,只能在编程和测试时注意不要让死锁发生 1、锁 阅读全文
posted @ 2016-11-07 19:29 HectorHou 阅读(820) 评论(0) 推荐(1) 编辑
摘要: 一、在任务和执行策略之间隐性耦合 Executor框架将任务的提交和它的执行策略解耦开来。虽然Executor框架为制定和修改执行策略提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略。 依赖性任务:依赖其他同步任务的结果,使其不得不顺序执行,影响活跃性 使用线程封闭的任务:在单线程的Ex 阅读全文
posted @ 2016-11-07 11:05 HectorHou 阅读(1853) 评论(0) 推荐(0) 编辑
摘要: 中介者模式:集中管理相关对象之间的复杂沟通和控制 >>>> 特点: 关系复杂的对象之间解耦了(对象之间必须相互认识 -> 对象只认识中介者) 中介者包含了整个系统的控制逻辑,控制逻辑集中可以简化维护 每个对象在自己状态改变时告诉中介者,每个对象对中介者发出的请求给予回应 中介者常常被用来协调GUI组 阅读全文
posted @ 2016-11-06 23:47 HectorHou 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 解释器模式:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子 特点: 每一种语法设置为一个类,便于实现 便于扩展语言的语法 用与处理重复发生的交叉问题或解析一种语言 缺点: 解释器模式会引起类膨胀 效率不高 解释器模式采用递归调用方法 举例: 阅读全文
posted @ 2016-11-05 23:58 HectorHou 阅读(240) 评论(0) 推荐(0) 编辑
摘要: Java没有提供任何机制来安全地终止线程(虽然Thread.stop和suspend方法提供了这样的机制,但由于存在缺陷,因此应该避免使用 中断:一种协作机制,能够使一个线程终止另一个线程的当前工作 立即停止会使共享的数据结构处于不一致的状态,需要停止时,发出中断请求,被要求中断的线程处理完他当前的 阅读全文
posted @ 2016-11-05 22:30 HectorHou 阅读(1191) 评论(1) 推荐(0) 编辑
摘要: 蝇量模式:让某个类的一个实例能够用来提供多个“虚拟”实例,运用共享技术有效地支持大量细粒度的对象 特点: 减少运行时对象实例的个数 将许多“虚拟”对象的状态一同管理 运用共享技术有效地支持大量细粒度的对象 区分对象的共享变量(内部状态)和不可共享变量(外部状态,将此类变量从类从剔除,由外部传入) 用 阅读全文
posted @ 2016-11-04 23:35 HectorHou 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 责任链模式:使一个以上的对象都有机会能够处理某个请求 特点: 链中的每个对象包含它下一个对象的引用和对事件的处理方法。请求在这个链上传递,直到链上的某一个对象决定处理此请求 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,将请求的发送者与接收者解耦 可以动态的改变处理对象成员的顺序,可 阅读全文
posted @ 2016-11-03 23:35 HectorHou 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 生成器模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 builder:为创建一个产品对象的各个部件指定抽象接口 ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个产品的引用 Director:构造 阅读全文
posted @ 2016-11-02 23:50 HectorHou 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。 优点: 将抽象与实现解耦,可以独立拓展而不影响对方 处理多维度变化的场景,将各个维度设计成独立的继承结构。使各个维度可以独立的扩展在抽象层建立联系。 使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的 阅读全文
posted @ 2016-11-01 23:09 HectorHou 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 代理模式:为另一个对象提供一个替身或占位符控制这个对象的访问 特点: 让代理对象控制对象的访问,被代理对象可以是远程对象(远程代理),创建开销较大对象(虚拟代理),或需要安全控制的对象(保护代理) 为另一个对象提供代表,以便控制客户对对象的访问 代理分类: 远程代理:好比远程对象(在不同JVM虚拟机 阅读全文
posted @ 2016-10-30 21:47 HectorHou 阅读(297) 评论(0) 推荐(0) 编辑