![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 74
倪琛
程序员
展开
-
浅谈设计模式(3):享元模式
之前在书里读到过享元模式(FlyweightPattern),算是比较好懂的几种设计模式之一,但一直没有亲眼见到过。对象是否频繁到对内存产生足够大的影响。如果注释里能加一个相关issue的链接就更好了。说实话,光是这么看,很难判断这里的享元模式用得是否必要,因为不清楚创建长度为0的。对象说——感到很奇怪为什么要把长度为0单独算一种情况?的话,就白白占用了一份内存,所以这里共用同一个对象。后来发现,长度为0时,返回了一个共用的。(还有就是,感觉长度为0的。的源码时终于见到了享元模式。...原创 2022-07-17 21:44:17 · 1770 阅读 · 1 评论 -
浅谈设计模式(2):装饰模式
继上一篇讲了简单工厂模式之后,这一篇谈谈装饰模式(Decorator Pattern),也叫装饰器模式。这也是继简单工厂模式之后,我实际工作中用到的第二种模式。装饰模式极为常见,一个很典型的例子就是缓存。很多时候一个业务组件已经实现了其功能,但我们希望给它加上一层缓存。大多数情况下,缓存的逻辑和该业务组件的内部逻辑完全无关,所以当然应该分开来写。甚至,这个业务组件根本就不应该知道缓存的存在!为什么呢?因为业务组件是业务逻辑,缓存只是技术细节,不应该用技术细节去“沾染”业务逻辑。这种情况下,装饰模式是当之无愧原创 2022-06-02 20:51:52 · 180 阅读 · 0 评论 -
浅谈设计模式(1):简单工厂模式
作为“浅谈设计模式”系列的第一篇,简单谈谈“简单工厂模式”(Simple Factory Pattern)。这是非常简单实用的一种创建型设计模式,也是我在实际项目里用到的第一种设计模式。为什么需要简单工厂模式?简单工厂模式是一种创建型设计模式,换句话说就是用来创建对象的。创建对象很简单,用 new 关键字就可以了。为什么需要简单工厂模式呢?如果需求永远不会变化,一遍写完就可以了,那么的确用 new 关键字来创建对象就足够了,没什么问题。但实际情况往往比较复杂。一个案例说一个根据实际项目改编的案原创 2022-05-21 13:31:23 · 277 阅读 · 0 评论