闲聊设计模式5--给设计模式一个新的分类
看到一些科普类网站,把设计模式分成【创建型】【机构型】【行为型】三类。
这种分类确实很有好处,可以帮助记忆与理解。也基本上成为主流的分类,且获得了大家的认可。
我在此处,想给一个新的分类思路--根据被使用者与使用者分类,什么意思呢?比如我们创建一个dao层的对象,一般都是给service层调用的。那么此时dto层就是被使用者,service层就是使用者。
有些设计模式是给使用者服务的,有些则是为创建者服务的。
创建型的设计模式一般都是给被使用者服务的,就拿工厂方法模式举例,如果你想获取一个对象,你可能就会调用某个工厂,创建一个对象。此时你就是在使用。而搭建好的工厂则是被使用者。
再举一个例子,适配器模式,适配器,听字面意思就知道,可以适配多种情况,不知道大家用过老式手机没有,就是那种需要把电池拆下来充电的那种(老有情怀了),有时候,忘记带充电器了,可能需要买一个神奇的东西,万能充!什么意思呢?就是你不能改变手机的电池的充电接口,这玩意是厂家定的,作为使用者只能买一个万能充了。所以说,万能充是为了用户(使用者)服务的。当你发现某个接口,不可改变。那么你可能就需要一个适配器了。
ps:适配器当然不是最佳方案,最佳方案应该是所有的厂家生产的电池都遵循同一种规范!!!(所有的类都继承同一个接口)这个就是一个充电器走天下了!
拓展:
除此之外,还有一种划分,就是把设计模式分成类模式与对象模式。(下图来自:http://c.biancheng.net/view/1320.html)
个人理解,类模式,就是你想要拓展,可能需要新增一个或者多个类。