期刊发表网电话

全国热线
022-83699069

关于设计模式的研究

作者: 发布时间:2020-01-17 16:05:14 阅读: 60 次

现在Internet已经是全球更先进的技术之一,而Internet更先出现的时候叫做ARPAnet,而且它是本来是美国的一个项目,当时美国为了处理军事范围内的紧急事件,想要实现在远距离通信,然后Internet慢慢发展起来,并产生了可观的效益,之后Internet慢慢的从小变大,最后扩大到了全世界。

说到Internet,就会联想到计算机,说到计算机就会联想到程序,然后就想到程序语言,我的毕业设计是一个游戏,使用C#来编写代码,并且使用Unity3D引擎来制作游戏,接下来我主要讨论一下关于设计模式方面的知识。

说到设计模式,本人觉得设计模式是一个的软件设计师必备的知识,一般来说,在开发软件的过程中,往往会产生一个问题,随着时间的推移,对软件的需求不断的变化,因此就必须不断的对软件进行修改,而在修改的过程中,可能会改变软件原始的框架设计,然后经过一段时间时候,这个软件很有可能在很大程度上已经偏离的原始的框架设计,而且修改软件的难度会不断的增加,因为往往修改软件一个部分之后,该软件的其他部分会受到影响,因此会产生一些无法预料的各种小问题,这些问题虽然小,但是改起来特别的麻烦,一直到谁也不愿意去修改这个软件,最后软件开发商宁愿重新开发一款崭新的软件,并满足所有的要求,于是这个软件的循环又开始了。

设计模式强调的比较多的是代码的复用,也就是说,我们在写程序的时候往往会多次碰到相似的问题,传统的方法就是再次碰见的时候就重新编写代码,之前编写的代码无法直接使用,或者需要修改一些代码才能使用,于是就出现了代码的copy,使得软件里面多次出现了相似的代码,这样的代码耦合度高、可读性差,而应用设计模式知识来设计框架的时候,这种问题就会得到很好的缓解。

设计模式还有一个抽象个概念,我理解的这个抽象的目的是为了封装变化,抽象的每一种具体实现的方法声明是不变的,但是每一种实现的方法内容又是变化的,而这里的不变和变化就很明显的体现出了框架的稳定性和扩展性。

设计模式的目的就是解决或者减轻这种问题的影响,使用设计模式的思想来设计软件,能够让软件容纳更多的可变性,也就是说在更多情况下对软件进行修改的时候不会影响到该软件的原始设计,并且随着软件的复杂度增加,修改的难度不会像原来那种开发模式下增加的速度快,也就是说可以减轻开发难度,使得软件更加的清洁。

设计模式思想:

开闭原则:开闭原则是指软件对扩展开放,对修改关闭,也就是说,框架设计好之后,可以向框架中添加代码,但是不能修改已经有的代码。开闭原则是设计模式的目标,一个软件的设计越接近于开闭原则,那么这个软件就越容易扩展,耦合性也越低,能够使开发更有效率。

里斯代换原则:这个原则讲的是只要是父类能够存在的地方,它的子类也能够存在。里氏代换原则是达到开闭原则的途径。

接口隔离原则:讲的是尽量把开放给客户端的接口分成几个部分,不要给客户端开放过多的接口,这样的话,每个客户端只能访问到自己需要的功能,不能访问到自己不需要的功能,这样能够使得客户端在调用程序的时候能够不用关心它用不到的功能,使得客户端调用功能的过程变的简单,虽然这看起来貌似没有简单多少,但是在真正编程的时候,这一点是非常重要的,因为往往客户端会不断的调用功能,这样每次都容易一点,很多次积累起来就节省了很多时间和精力。

迪米特法则:指的是程序之间尽量不要有直接的交流,也就是说要限制程序之前沟通的广度和深度,这么做的一个好处就是能够降低程序之间的耦合性,使得在一个模块面临修改的压力的时候,尽可能少的或者不会吧这种压力转移到其他模块里面,这样就使得对软件的修改变的简单。也就是说设计模式的一个很大的好处就是使编程变的简单,这一点我深有体会。

聚合原则:指的是尽量使用聚集而不是继承,虽然继承是一个非常重要的概念,但是继承也会带来一定的不灵活性,继承的耦合度比较高,而聚集的耦合度就相对来说弱了很多,我也是在第三遍认真阅读这一章的时候才真正理解这个意思,我觉得这是一个非常不错的方法,并且在之后的程序设计里面把这个原则的思想加了进去,起到了比较好的效果。

依赖倒转原则:指的是程序要依赖于抽象层,而不依赖于具体的实现层。而传统的编程是抽象成依赖于实现层,也就是说,当一个具体的实现被改动之后,很有可能需要更改整个软件的框架,这种工作量是非常可观的,而设计模式的要求刚好反过来,于是这种原则叫做依赖倒转原则,也就是说,抽象层是比较稳定的,一般不会改变的,这样抽象层就比较好的实现了代码的复用。

现在已经有二十多种比较好的设计模式,它们分成几大类:创建模式、结构模式、行为模式。

创建模式是对类的实例化过程的抽象化,一些系统在创建对象时,需要动态地决定怎样创建对象,创建那些对象,以及如何组合和表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。

结构模式描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一不同,结构模式可以分为类的结构模式和对象的结构模式两种。

行为模式是对在不同对象之间划分责任和算法的抽象化,行为模式不仅仅是关于类和对象的,而且是关于他们之间的相互作用的。

这些设计模式中,每一个都有它适合的地方,但是不要把一种模式硬生生的套在自己的程序里面,应该根据情况的不同做一些变通,也就是说要对设计模式的思想理解清楚。

我觉得在设计模式领域里面的知识中,最重要的还是它的基本思想,万变不离其宗,只要掌握了这些最基本的原则,那些具体的模式都是可以很容易就能掌握的。

设计模式最本质的就是扩展性和松耦合,设计模式可以让程序适应软件需求的不断变化,并维持项目的开发速度。

接下来我说一下本人对几个设计模式的理解。

工厂模式:工厂模式用来创建对象,就是把对象的创建任务交给工厂类在做,这样就把对象的创建完美的封装了起来,如果以后改变对象创建方式的时候就不需要改变客户端。这种模式在一定程度上封装了对象创建的可变性。

单例模式:顾名思义,就是只有一个实例,要求一个类只有一个实例的时候,可以考虑单例类,单例类有两种实现方式:懒汉式和饿汉式。懒汉式是次获取该单例对象的时候创建这个对象。饿汉式是类加载的时候就创建这个对象。如果该对象加载时间不是很长的话建议使用懒汉式,如果加载时间特别长,考虑到运行的效率,建议使用饿汉式。