随笔分类 - DESIGN PATTERNS & PRINCIPLES
涉及经典的设计模式和涉及原则及改进
摘要:面向对象的设计模式系列之一:单件模式(Singleton)面向对象的设计模式系列之二:工厂方法模式(FactoryMethod)面向对象的设计模式系列之三:抽象工厂模式(AbstractFactory)
阅读全文
摘要:在上一讲我们谈到了利用工厂方法模式解决对"某个对象"的创建工作,通常这个对象是"易变的",但它们的抽象能力却相对固定(即主模块变化相对缓慢),因此我们将通过工厂的"创建"来"封装"这个变化点,使得客户端无需知道对象的具体类型。但不管是简单工厂也好,工厂方法也罢都是针对"一类"对象的创建,当面对"一系列"(我们这里可以称维度)相互依赖的的对象时,就已经力不从心了,可能工厂的数量会指数级增长,这个可能是我们目前面临的变化点,我们同样需要一种"封装机制"来隔离这
阅读全文
摘要:大家好,由于工作繁忙导致很久没有更新博客了。结合我一直以来的工作经历和项目经验,谈一下个人关于设计模式的理解。其实这个话题是非常大的,也非常深入的,可能不能一时半会能全部展现整个设计模式的精髓。因此我的建议是:首先了解每种设计模式的应用场景和基本框架,模式只有在特定的环境下才能发挥强大的作用,其次我们延伸对设计模式的应用,因此模式不能死板硬套,否则就会变成为了模式而模式,那就非常不合适的。说到这,让我想起来一句话:在合适的时间,合适的地点遇到合适的人,也许才是你一生的挚爱。对设计模式而言:在特定的应用场景,怀着特定的意图并融合以及适当扩展设计模式,也许才是项目使用设计模式的王道。在讲解Sin.
阅读全文
摘要:在上一篇文章中(Singleton设计模式)曾谈到了工厂模式,那究竟什么是工厂模式呢?它又能解决什么样的问题呢?在知晓这个问题之前,让我们先了解一个概念:对象耦合。经常在很多技术书籍上听到"松耦合,高内聚"。那什么是松耦合呢?既然有松耦合,那应该存在相对的紧耦合吧。两者之间到底有什么联系呢? 带着这些问题,我们可以展开为什么需要工厂模式的缘由。松耦合即在软件系统中,模块与模块之间在应对软件变化(主要来自需求变化)时,一些模块很容易被替换或更改,而能使其他模块保持不变。相对的,紧耦合即软件应对变化时,一些软件的改变将会使相关模块发生改变。先看看下面的两幅图: 图1——紧耦合
阅读全文