设计模式是什么?
- 在软件开发中,经过验证的解决方案,用于解决在特定环境下、重复出现的某些特定问题。前人栽树,后人乘凉,其实现在码农这个工作,很少有创新,所做的80%都已经由前辈实现了,所以我们在学习过程中,要善于利用前辈们总结出来的经验。帮助我们少走弯路。
23种设计模式概览
- 总体上分为三类:
①创建型模式: 用于创建对象
②结构型模式: 用于处理类和对象的组合。
③行为型模式: 描述类和对象之间的交互和怎样分配职责。
类别 | 模式 |
---|---|
创建型 | 工厂方法模式、抽象工厂模式、单例模式、 建造者模式、原型模式。 |
结构型 | 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式 |
行为型 | 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式 |
- 还有一种分类方式是:并发性模式与线程池模式。不做论述。
为什么要使用设计模式?
①学习设计模式对提高技术能力很有帮助。
②不用重复造轮子。
③节省大部分时间
使用设计模式有什么好处?
老生常谈,所有的技术,存在即合理,一种技术。无非就是,节省写代码的时间,提高代码的健壮性,可维护性,复用性,简化问题。
反模式是什么?
- 是指用来解决问题的带有共同性的不良方法。它们已经经过研究并分类,以防止日后重蹈覆辙,并能在研发尚未投产的系统时辨认出来。简单的来说,反模式是指在对经常面对的问题使用低效,不良,或者有待优化的设计模式。
- 举例:在面向对象设计/编程中,单一责任原则,其中心思想就是对于一个模块,或者一个类来说,这个模块或者这个类应该只对系统/软件的一个功能负责,而且该责任应该被该类完全封装起来。当开发人员需要修改系统的某个功能,这个模块/类是最主要的修改地方。相对应的一个反模式就是上帝类(God Class),通常来说,这个类里面控制了很多其他的类,同时也依赖其他很多类。整个类不光负责自己的主要单一功能,而且还负责了其他很多功能,包括一些辅助功能,有的类里有几千行的代码,有很多功能,但是责任不明确单一。维护/修改这个类的时间要远远超出其他类的时间。很多时候,形成这种情况并不是有意而为的。久而久之代码累计,符合单一原则类慢慢的变的臃肿起来。
- 总之,开发过程中,肯定会不幸的陷入反模式中,这就与初衷背道而驰了,所以我们熟练掌握设计模式,并且研究反模式,尽量避免反模式情况的发生,防患于未然!