C++设计模式_李阳阳_AZW3_MOBI_EPUB_PDF_电子书(无页码)_李阳阳
内容节选
第2章六大设计原则 设计原则是指在软件设计中应当遵守的规则,是程序员开始学习设计模式前必须掌握的知识,程序员只有熟悉了基本的设计原则,才能设计出易于维护和扩展的软件架构。 设计原则是在软件设计中必须考虑的要素。本章针对软件设计的六大设计原则展开详细讨论,用通俗易懂的语言给读者讲清楚设计原则的原理,用实际生活中的问题和相应的解决方案为读者提供程序设计参考。本章将要介绍的六大设计原则和其对应的实际案例如图2-1所示。 图2-1 六大设计原则和其对应的实际案例 图2-1描述了本章将要讲述的六大设计原则以及每种设计原则对应的实际案例。将设计原则理论知识付诸实践,对提高学习的效率可以起到事半功倍的作用。 2.1 开闭原则——服装店打折 开闭原则即开放和闭合原则,是软件设计中首先要考虑的原则。什么情况下需要“开放设计”?什么情况下需要“闭合设计”?在软件设计中,开放和闭合又是相对于什么来讲的?获得这些问题的答案是读者学习本节的重要目标,下面就用生活中服装店打折的实例为读者揭开谜底。 2.1.1 多扩展、少修改 不同的软件设计场合必然有不同的设计规则,“开闭”是针对软件设计的扩展和修改来说的。良好的代码设计完成之后,一般是不允许修改的,程序员若要为软件增加新的功能,只能在原来软件设计的基础上进行扩展,这就是“扩展开放、修改封闭”。下面就用书面语和大白话分别说明开闭原则。 (1)用书面语讲开闭原则 开闭原则是针对软件中的对象来说的,如程序中常见的类、模块、函数等,对于扩展类中的方法是开放的,但是对于修改类函数是封闭的。这种原则是指可以在不修改原有框架的情况下实现程序不同的行为方法,即可以通过增加新的方法来实现功能的扩展,却不可以修改原有的方法。 (2)用大白话讲开闭原则 试着想一想,若工作中我们需要做一个软件系统,如图书馆系统、银行系统等,接到这个开发需求后,我们就开始程序设计。但是在开发的过程中,产品经理经常更改产品需求,不可能需求一变,我们就把以前编写的代码删除或重写。所以,程序员在刚开始开发的时候,就要考虑面对时常变换的需求时,怎么去设计才可以保持整体框架稳定。要在需求变化时尽可能不改动原有代码,做到修改程序中的一个模块而不影响其他模块,那么“多扩展、少修改”的思想是最合适的。 关键词:类模块、多扩展、少修改。 2.1.2 兼容性的考量 “多扩展、少修改”是开闭原则的核心思想,这种思想也体现了软件开发者对设计框架向后兼容的考量。 (1)核心思想 程序中使用的类设计一旦完成,就不允许修改,当新需求到来时,在原有程序基础上增加一些新类即可实现新需求,而不用改变原有代码。 (2)设计优点 ① 程序中原有的类设计不会变动,整体框架保留,不做无用功。 ② 能够保持原有代码的通用性和向后兼容性。 2.1.3 季节变换后的服装销售 开闭原则在软件设计中的应用是首要的,程序员将“多扩展、少修改”思想应用在代码设计初期,会给整个开发项目节省很多人力,提高开发效率。本小节将要讲解的“季节变换后的服装销售”是开闭原则的应用的良好体现。 (1)主题——服装店打折 小码路毕业后经营了一家“开闭服装店”,如图2-2所示。 “开闭服装店”的经营模式是这样的:夏天销售T恤;秋装上市的同时,对T恤进行打折出售。请使用开闭原则设计本店经营模式的软件架构。 图2-2 开闭服装店 (2)设计——季节变化的烦恼 在服装店成立之初,小码路设计了一套“服装销售”的软件架构,这套架构涵盖创业初期销售T恤的整个流程,并没有考虑后续天气变化导致T恤打折的情况,或者新增服装带来的影响。但是,很多产品的供应会随着季节、天气的变化而变化,对小码路经营的服装店造成了一定的冲击。如何摆脱天气变化带来的烦恼,以及应对不同季节对服装销售的影响呢? 这些问题可以使用开闭原则进行解决。 小码路刚刚学习了开闭原则的设计思路,于是就按照这个思路写了如下设计步骤。 第一步:开闭原则的核心思想是“多扩展、少修改”,这就要考虑软件设计初期的不变性,变化的是初期设计的扩展性。 第二步:设计销售服装的基类,T恤类和秋季服装类是其直接的派生类,T恤是创业初期主要销售的服装,这个派生类可以被看作最初的软件设计架构。 第三步:秋季天气变凉,在派生类T恤类的基础上,继续增加派生类打折T恤类,这样在保证T恤类不变的情况下,扩展了T恤的打折销售功能;同时,在派生类秋季服装类的基础上继续派生出秋季卫衣类,完成卫衣销售功能的扩展。 第四步:引入软件设计的入口,设计一个“服装批发地类”,这个类进行客户端的调用,实现整个软件流程。 随后,小码路利用第1章学习的理论知识画出了整个软件设计流程的UML类图,如图2-3所示。 图2-3中明确了解决服装销售问题的具体程序设计清单,这个程序设计清单主要包括如下内容。 ① 创业初期的软件基本框架。虚基......
- 信息
- 内容提要
- 前言
- 第1章 理论基础
- 第2章 六大设计原则
- 第3章 六大创建型设计模式
- 第4章 七大结构型设计模式
- 第5章 十大行为型设计模式
- 第6章 设计模式三大综合案例
- 参考文献