一、 Model主要功能:
1、 将每一个“业务实体”抽象成“(瘦数据)类”,可以很好地“划分”各个“对象”,操作更加清晰
2、 用于在应用程序各层之间传递数据,被用做传输数据的“容器”
3、 这就是所谓的“建模”过程!
4、 Model各个类(Model文件夹中的各个文件)划分或者说编制的原则,更趋向于模拟整个系统中的业务实体
二、 实现细节:
1、 为每一个Model中的类都标记了[Serializable],说明这些类可以被传行化,但是不能被继承!
2、 AccountInfo.cs文件:用户在网站注册的信息,及喜好选择情况
3、 使用构造函数可以初始化私有字段;使用属性可以读取私有字段(但使用属性不能设置私有字段的值)
4、 其中包含一个AddressInfo类的私有变量,和一个AddressInfo类的属性
5、 命名空间为PetShop.Model
6、 AddressInfo.cs文件:用户真实的个人姓名、住址和电话号码等信息
7、 与AccountInfo不同的是,AddressInfo类允许使用属性设置私有变量的值
8、 CartItemInfo.cs文件:描述购物车中每一种所选商品的信息的类
9、 该“类”对象的某些信息(如这里的Subtotal属性)可能并不是此类的“自然信息”,而需要经过简单计算而得到!这些简单但必要的信息也要在类的设计中体现出来!
10、 CreditCardInfo.cs文件:表示特定一张信用卡的信息
11、 ItemInfo.cs文件:一个Item指的是category/product/item,如猫/波斯猫/成年男猫(或成年女猫)。这个文件表示一个Item的所有信息
12、 productDesc字段的作用?
13、 LineItemInfo.cs文件:注意与CartItemInfo类的区别!LineItemInfo是用来描述用户最终确认的订单当中的某一种类的产品的信息的类
14、 同样包括了Subtotal属性
15、 OrderInfo.cs文件:用于显示用户某一个订单具体信息的类,在此一个订单当中,可能包括多个商品种类,即包括多个LineItemInfo对象(实际上在OrderInfo类中也确实存在LineItemInfo类型对象的一个数组!)
16、 ProductInfo.cs文件:包括一个特定Product的信息,如波斯猫
三、 启发:
1、 来自Directory项目结束后的启发,以后做设计的时候,要将每个实体抽象为一个类,在整个系统中进行操作。
2、 在任意一个类当中,可能不只包括此实体类的自然信息,也可以包括一些对其他地方数据调用有用的属性信息,如根据数量和单价计算出来的总价属性,或者标志此实体的直属上级实体的属性
四、 问题:
1、 抽象这些业务实体模型为瘦数据类的原则是什么?什么样的业务实体可以被抽象,或者说进行抽象后更有意义?
2、 ItemInfo类中,productDesc字段的作用?