- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 设计模式解析笔记—为什么需要工厂
为什么需要工厂? 有两大原因:一是将创建者和使用者解耦,二是提高内聚度。 概念上相似的对象从使用的视角来看,可以以同样的方式处理。然而,创建对象时,负责创建的实体通常需要了解创建的是哪个具体对象,以及何时创建这个而非那个对象。OO告诉我们,让客户对象在概念层次上使用其他对象是最有用的,这意味着设计要遵循开闭原则、依赖倒置原则和Liskov替换原则。要实现这些原则,客户对象就不应知道它
2012-05-30 13:27:39 766 3
原创 设计模式解析笔记—Double-Checked Locking Pattern
引入问题 Singleton模式已经很熟悉了,但是以前一直没有注意到singleton的一个严重问题:在多线程环境下,singleton可能不再single。具体来说,在singleton模式中,假设对getInstance的两个调用几乎同时发生,可能会出现如下情况:1、线程一检查实例变量是否为null。发现实例还未创建,于是执行创建实例的代码部分。2、在线程一的实例化代码执行完毕
2012-05-29 16:48:35 320
原创 设计模式解析笔记—Object Pool Pattern
有时,我们需要创建大量占用一定资源(不仅是内存)的对象,这些对象的创建过程一般比较耗时(因为创建过程也就是资源申请过程)。为了提高效率,最好是预先申请一定数量的这类对象,需要时分配出去,用完后也不释放,留着重用。“设计模式解析”中,对这种方法进行了系统阐述,并归纳为对象池模式(Object Pool Pattern)。对象池模式已经得到了广泛运用,最多的莫过于线程池、数据库连接池和tcp连接池了,
2012-05-29 15:05:16 364
原创 多个特性不同时如何设计继承体系结构
问题 用面向对象的方法建模描述一个小型的动物世界。这个缩微的动物世界中,有下列成员:老鹰,会飞翔的肉食动物;狮子,行走的肉食动物;麻雀,会飞的草食动物;牛,会走的草食动物。要求 建立可以统一描述所有动物的模型,使得用户使用该模型时可以忽略动物的具体类型。方案一 飞翔、行走、吃草、吃肉都是动物的能力或者行为,而行为可以用接口来描述。于是非常strai
2012-05-10 22:42:05 2960 8
原创 设计模式解析笔记-OO传统观念拓展
关于对象 传统观点: 数据和方法的集合。这是从对象实现的角度来看,层次比较低,不应该在分析设计阶段应用。新观点: 对象是具有责任的实体。这是从概念角度来看,层次较高,它让我们关注对象“做什么”,而不是“怎么做”,避免过早操心实现细节,从而增强软件结构的灵活性。适合在分析设计阶段使用。关于封装 传统观点: 数据隐藏。 新观
2012-05-09 17:12:45 461
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人