一、设计模式的分类
结构型模式充分的利用了接口的概念,这里的接口,是指抽象,通过这种抽象机制来组合类,从而实现所需的功能。结构型模式包括了适配器模式、外观模式、组合模式、桥接模式和装饰器模式。我们还可以根据可见性和依赖程度将设计模式分为broadexposure和isolateduse两类。Broadexposure设计模式可以简单的理解为开放型模式,由于过度的开放,会导致客户代码与其产生依赖。因此,使用这种设计模式的决定不能轻易取消,否则将会产生十分巨大的开销。相对于broadexposure模式,Isolateduse则将细节隐藏起来,对客户代码基本透明,避免了依赖性而导致的外部耦合,从而使得程序更加稳定。
二、设计模式在实际中的应用
设计模式的理解和使用并非朝夕之功,一般会经历三个阶段:第一个阶段,为了模式而模式。在这个阶段里程序设计人员刚刚开始接触设计模式,并努力在自己的代码中有意的加入设计模式,但是由于对设计模式的理解不足和经验的欠缺,往往不能很好的达到预期的目的,需要通过大量的失败和不断的尝试积累经验;第二个阶段,我们可以称之为非最优化模式。在这个阶段里,程序设计人员对模式已经有了一定的理解,而且可以自如的在程序设计中应用一些设计模式理念,但是仍有考虑不周之处,可以看作是上一阶段的进阶阶段;第三个阶段,无模式阶段。即在程序设计过程中并没有可以追求所谓的模式,而是自然而然将设计模式的理念融入到其设计当中,该阶段可谓是设计模式的最高境界。但目前大多数程序设计人员尚处于第二阶段甚至第一阶段当中,如何把设计模式的采用和日益临近的工期、紧缩的预算及资源相结合,是我们面临的主要问题。以下提供三个建议:
1.良好的沟通和培训
在程序开发过程中,必须保持良好的沟通机制,而且应当是跨团队,甚至是跨项目的,从而预防相对独立或者唯一的实现方式。另外通过强化培训,加强对设计模式的理解并提高应用水平。在学习设计模式的同时也必须紧记各种反模式,以避免重蹈覆辙。
2.设计模式的评审
设计模式并非万试万灵的,当我们选择了不当的模式的时候,它可能给我们的项目带来打击。因此在使用设计模式之前,我们需要进行评审。正式的评审一般适用于大规模的框架性的设计模式,而对于代码开发过程中使用到的设计模式,建议通过代码的走查或者代码审计等方式完成评审。
3.实现重用和程序的稳定
设计模式引入的主要目的是实现重用,重用的实现可以缩短开发和维护时间,降低其成本。broadexposure设计模式就很好实现了这一点。但由于其依赖性的存在,可能会产生因为其自身变更而产生的连锁反应;isolateduse设计模式无疑很好的解决了这个问题。它将程序的功能限制在某一特定的范围内,这一范围内的修改不会引起其客户代码的连锁反应,从而实现程序结构上的稳定。但是如果他们是根据具体情况定制的,他们就非常难以重用。
作者:李研硕 单位:天津市财税信息中心
相关专题:课程教学研究 税收征管规范落实情况