面向对象的程序设计(Object-Oriented Programming,简记为OOP)立意于创建软件重用代码,具备更 好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句 ,把函数“封装”进编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易 。
在计算时代的早期,程序员基于语句思考编程问题。到了20世纪七八十年代,程序员开始基于子程序 去思考编程。进入21世纪,程序员以类为基础思考编程问题。而类是OOP中的核心组成元素,通常都是使 用类来“封装”对象(属性、行为)。在经典图书《代码大全》里定义:“创建高质量的类,第一步,可 能也是最重要的一步,就是创建一个好的接口。这也包括了创建一个可以通过接口来展现的合理的抽象, 并确保细节仍被隐藏在抽象背后。”
为了更好的理解设计思想,本系列文章以简单的《书店信息系统》为例,但随着需求的增加,程序将 越来越复杂。此时就有修改设计的必要,重构和设计模式就可以派上用场了。最后当设计渐趋完美后,你 会发现,即使需求不断增加,你也可以神清气闲,不用为代码设计而烦恼了。
在一个书店里,主要业务就是销售书,销售书后所得到的就是收取到的资金(本次交易金额),那以 这个业务来分析,在不考虑设计的情况下,我们该怎么去实现:
1namespace EBook.Step1
2{
3 /**//// <summary>
4 /// 会员购书
5 /// </summary>
6 public class Buy
7 {
8 /**//// <summary>
9 /// 处理销售书的方法
10 /// </summary>
11 public void Execute()
12 {
13 Console.WriteLine("会员购买了一本书");
14 }
15
16 /**//// <summary>
17 /// 买书得到了多少钱
18 /// </summary>
19 public void GetMoney()
20 {
21 Console.WriteLine("收到了xx.xx元RMB");
22 }
23 }
24}