随笔分类 - 设计模式
摘要:抽象工厂模式:一个系列、一个类别、一个平台等引申来的某种相同架构,并且这个架构比较稳定,在此架构上求灵活扩展变化。并且在不同的架构上,产出的的东西有着本质的不同。专业一点来说,这个架构里有一个“产品族”的概念,什么是产品族? 产品族 是指位于不同产品等级结构中,功能相关联的产品组成的家族。一般是位于不同的等级结构中的相同位置上。显然,每一个产品族中含有产品的数目,与产品等级结构的数目是相等的,形成一个二维的坐标系,水平坐标是产品等级结构,纵坐标是产品族。叫做相图。当有多个不同的等级结构的产品时,如果使用工厂方法模式就势必要使用多个独立的工厂等级结构来对付这三个产品的等级结构。如果这些产...
阅读全文
摘要:在软件开发过程中,有很多人抱怨着需求的变化,是需求没有做好么?不是的,其实需求变化在软件开发中是不可避免的。做人也是一样,出了问题要先从自己这边找原因,然后想办法解决。我们身为程序员,向用户和需求分析师们抱怨(其实,任何一种抱怨都是没有意义的),是没有意义的。究竟怎样解决这个问题呢?我身边很多人都有这种苦恼,竟然没人去想,难道我身边的这群人都不懂设计模式?悲剧…… 我始终坚信,在软件开发里:优秀的算法+优秀的设计模式+优秀的架构=Nothing impossible!(这句话是原创!) 以上是题外话,就此打住。这次的重点是工厂方法设计模式。-----------------------...
阅读全文
摘要:一、单一职责原则面向对象编程的设计中的最小单位是类,单一原则就是说,一个类只给他一种功能,也就是一个类只实现一个业务功能,那么类也是业务设计上的最小单位。我们可以肯定,类将会只有一个引起它变化的原因——这个类的功能所涉及到的业务变更。如此这般,只有当某一项业务变更时,类才需要改动。单一职责原则的目的就是让一个类改动的原因尽量单一,牵扯到的业务尽量细小,以减少耦合,便于代码的维护。二、开放封闭原则设计过程中,乃至设计完成,甚至设计完成后相当一段时间里,我们都会面临新的需求。所以,我们的设计必须要能在承受需求的改变时保持代码稳定。要保证代码稳定的绝对方法是不修改,要使软件能良好的承受需求的变化就必
阅读全文
摘要:在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。 通常我们有以下需求时,我们会用单例设计模式来构造我们的类: (1)当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。 (2)当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。 Singleton有两种模式: (1)程序启动立即实例化对象——饿汉式 这种模式有个好处就是不会出现线程问题,但是将会有内存的损耗,特别当Singleton类占用内存特别大的时候,这种方式非常不可取,所以通常用第二种模式,来设计单...
阅读全文

浙公网安备 33010602011771号