软件开发常见的一些设计模式,留着供自己研究和面试使用
说到软件开发,就不得不提到设计模式,比如大家基本上都用过什么MVC框架开发各种系统,一些好的设计模式不仅能让软件运行的更为流畅,更能让开发人员的工作效率大大提高。本文就来列举一些常用的设计模式,供大家参考收藏。
工厂模式
这个模式学过Java编程的一定不陌生,都听说过SessionFactory。工厂模式是一个程序设计中比较常用的模式,一般来说一个对象都是通过new方法去获取自身的一个实例。工厂模式的目的在于将创建实例和使用实例过程分来,提高程序的封装性,使用对象生产对象,这样做是非常符合面向对象的思想的。
单例模式
很多时候去面试的时候,都会要求学会写这个单例。比如Java开发中Calandar这个类就是一个单例,通过getInstance()方法就可以获取这个实例,因为获取日期一个类就可以提供了。这种类有且只有一个实例,并自行实例化向整个系统提供服务。
适配器模式
这个模式运用不多,但是日常生活中的例子却比较普遍。如普通的MAC(苹果)电脑并不能直接插网线,这个时候大家通常回去买一个转换器,一边连接MAC电脑,一边连接网线,这个转换器就相当于是一个适配器。如果大家有一定的编程思考,可能已经想到了如何在程序设计中去构建一个适配器,那就是采用继承(extends)和依赖(interface),用于匹配和兼容不同的接口。
观察者模式
又被成为“模型、视图”模式,大家经常使用到的MVC框架的理念很多也是来源于观察者模式的灵感。观察者模式包含观察者和被观察者,一般视图界面作为观察者,业务层的数据作为被观察者,当数据发生变化的时候,会呼叫观察者进行数据重新绑定。因此来将各个模块之间的界限划分的比较清楚,提高了程序的可维护性。
策略模式
策略模式主要是对算法进行封装,算法相互间可以独立替换。来应对使用系统的不同客户。优点在于策略模式提供了管理相关的算法族的办法、策略模式提供了可以替换继承关系的办法、使用策略模式可以避免使用多重条件转移语句。
访问者模式
它被归纳到行为型设计。访问者模式实现了数据操作与数据结构的分离,由于这种特性,它几乎是众多设计模式中比较复杂的一种,但它的使用频率并不是很高,一般来说,不会经常使用访问者模式。
代理模式
代理这个词语,大家一听就明白。通常在一个程序中,只有程序自身具有访问对象的权利,而代理模式提供了另外的一些方法去访问目标对象。就比如我们回家买票,我们可以自己直接买,也可以委托别人买,但都是为了买票。这很好的符合了软件工程的思维,不轻易改动原来的代码,可以通过扩展方法来进行操作。
责任链模式
责任链模式多用于对问题本身处理的效果比较看重的情况,将多个对象连成一条链接,收到的请求依次传递,直到某个对象处理这个请求为止。
备忘录模式
在不破坏系统封闭的前提下,捕捉某个对象的内部形态,并在另外的地方保存这个状态。这样以后就可将该对象恢复到原先保存的状态。主要是一种备份机制和考虑。
其实呀,每个模式都还大有讲头,更多精彩,欢迎关注公众号“编程社”,优质内容为你不断呈现。