当前位置: 代码迷 >> .NET分析设计 >> 学习petshop案例的时候有很多不确定的地方,
  详细解决方案

学习petshop案例的时候有很多不确定的地方,

热度:438   发布时间:2016-05-01 22:41:40.0
学习petshop案例的时候有很多不确定的地方,请教大家。
不确定的地方希望自己没理解错,所以请大家帮忙给看看,不对的还请帮忙指出来。

1.membership模块里的membershipProvider类好像只是提供了重写了很多方法,比如Getpassword()...
2.业务逻辑组件包括库存对象、订单对象、商品目录等,业务逻辑层实际实现了定义业务组件类,即确定了类的属性、方法等。
3.model里定义了categoryInfo、CustomProfileInfo等~info类,而且这些类都只定义了属性,并且model模块里的这些类被三层调用。现在还没有看出调用它们干什么用。大家指点一二我看代码就可以快一些了。
4.缓存机制的类包括接口类、工厂类和实现类,如果画类图,应该怎样画?工厂类与实现类之间是关联关系吗?
接口类
  |
实现类<-工厂类
先问这么多吧。
petshop案例

------解决方案--------------------
1. 所谓继承,就是仅仅对父类对象进行扩展。例如先对某一种ATM机的功能就行抽象,然后对某一种信用卡的功能进行抽象,这就能写出这种ATM机跟这种信用卡的交互操作的进一步程序设计。但是这种ATM机其实可以具体有10种,这种银行卡其实具体可以有50种,你无需写出500个程序来修改上述交互操作程序,你仅仅需要为每一种ATM的子类写出它与父类不同的代码(Override的代码)就行了;对于信用卡也是一样。

因此在编程中要学会理解这种设计概念。除非一个公司都是菜鸟在那里糊弄投资人的钱,否则一定会有这类比较高层次的设计和实现,而其它程序员只是重写很多方法而已。


2. 业务逻辑层是干什么用的呢?是让设计师可以脱离程序前端界面、站在(无限客户程序的)功能服务的角度来考虑架构功能的。许多没有什么开发经验的人,他根本考虑不到程序前端的美工设计是多么地“性命攸关”,他以为程序不过是“增删改查”,他没有经过大量时髦程序(例如流行的经典软件、手机软件之类的),所以就更难理解为什么说界面是千变万化的。实际上,如果你承认界面是千变万化的,如果你承认任何软件一旦刚刚推出,用户此时看到了你的软件的原型界面才明白并且更改他自己之前提出的需求,如果你承认这一点,你就自然会把那些稳定不变的计算、通讯、存储等等功能与界面分离开。并且从你使用的开发工具,到你的变成理念,就会这样去区分。这就是分层的意义。比如说在微软基于XAML的界面设计程序支持下,程序员编写的代码就很少直接访问View的内容,而是让View去自动绑定数据并且自动刷新。这也是一种分层的概念,界面设计时可以随时、不断、千变万化地去使用Blend来快速设计几十种界面并且立刻发布产品,而不用编写一行代码。


3. model就是用于通讯的,它往往需要跨进程。我猜你在你看到的所谓例子中很难看到跨进程的例子,这很一行。所谓跨进程,比如说非常简单的电视遥控器它自己组织好一个数据结构,然后把它变成字节流,通过红外信号发送给一个Android电视机,然后电视机就可以解析这个指令,如果这个是上网指令那么这个电视机可以自动上网去搜索高清视频节目。这里边对于软件来说,说的就是model——跨进程通讯使用的数据实体结构。因此它们往往是只有最简单的字段/属性标识,不含任何代码。那些需要执行代码的部分,那些分别隐藏在不同进程内部的部分,不在Model这个层次上体现。

4. 工厂类与实现类之间的关系,就好像汽车跟汽车门之间的关系似地,是最简单的普通关联关系。