关于信息展示类
数据展示类运用程序,不管是web还是navicate.大构架都可以运用mvc
model:可以用弱类型。由 bll 或bll+dal来提供数据。
view:可以用委托来分离数据,或行为。
control:通过bll获得数据, 并实现view 的委托(函数指针回调)。
程序的具体项目可以
function项目:提供通用方法。 给各个层使用。所以包括
1.给数据model层使用的数据访问帮助累。
2.给view层使用的通用自开发控件。
3.给control层使用的一些数据类型转换,io处理等通用方法。
model项目:
1.放业务逻辑数据模型。分为远程数据和本地文件数据。。如user. 单独model .单独bll。 如 mylocalsetting.公用或单独 model ,多个或一个类型在单独bll实现中。
2.放系统通用数据模型。。如定义的一些数据结构。统一放入 model层。.buttoninfo. 公用model .分散 在 bll 中。
bll项目:
1.放业务逻辑数据,分为远程访问或本地配置数据
2.生成默认的系统通用数据集合
3.本地的一些数据,android 给出了一个很好的方案,就是本地xml文档,并提供了系统级的帮助。反观.net,并没有在某个项目中对本地数据给出系统级帮助。
project项目:
1.存放view 和control
2.存放全局变量。
3.帮助类。如公用ui,基类。
4.资源文档
关于类和静态方法。
帮助类可以虚类加静态方法。
一般类,应该是成员变量加普通方法。但是为了便于理解,可以强制把参数填入。 让函数明确输入和输出。
对于类的实践,走过了成员变量+普通方法。 到全静态方法全参数,无成员, ,再到 成员变量+明确方法参数的方法形式。
关于全局变量。
全局变量和枚举类型:
有些是通用的全局变量。
有些是只提供给某个项目使用。
为省事,可以放到一起。 省的发精力分开文件。(纠正,很多项目都是分别放入到各自的类中。需要自己按空间类名去找全局变量。想想也是,模块很多的话,还是分开放到各自模块和类。)
不能马上赋值的,必须在入口处赋予正确数据。
非服务端程序,有一个比较 重要的点就是看这个 框架是如何处理,复用子界面,
可以自定义ui的话。那么基本可以算作复用子界面了。
至于模板。
对于 垃圾自动回收语言 。
最 重要的 是 理解 ,参数 传递过来的 是 指针 。由指针 修改 数据 ,是 会 影响实参的 。 而 直接给 指针赋值 ,对实参无效 。
而且更主要的是 。要确认,当前类,是只需要一个指针就可以,还是需要在本类中拷贝一个数据 。必须仔细考虑。
写代码要先考虑正确,合理,再考虑性能。
数据库相关
关联表的实体设计,可以不需要视图来辅助展示数据。所以关联表需要 访问被关联表的dal,并展示被关联表的数据。
最好吧所有的sql放入到dal层来 扩展。bll最好提供更多的逻辑层面的参数的方法。
充血还是贫血模式?
没有所谓充血还是贫血,尽量的数据和方法在一起,就是正常的类,也就是所谓的充血模式,但是获得数据的方法,因为不同项目间不相同。所以获得数据的方法可以单独建立出来一个数据获得帮助模块。
关于三层结构
model 可以充血模式,但仅仅只涉及到本身数据的处理,必须是和外部无任何耦合
dal,一一对应model,处理数据。
bll, 首先要保证一一对应 dal. 因为model 首先就是实体的抽象,而实体就代表了逻辑的分类。
当然如果有需要多个dal合作的逻辑,推荐新建立一个关联的逻辑模块为名字,如Login 的bll,可以取名字为user_Group 加入user ,group 等dal实体。
关于异常
自己终于体会到了异常的本质目的,自己的见解,
一般异常写法
1.底层不做任何处理,使用它的默认上抛行为。或者自己加点描述再上抛,上层固定捕捉,并显示。
2.如果是不影响主体运行,可以try,catch不抛出,自己处理。
3.非常特殊情况,出现异常,需要额外处理,清空数据啊什么的再抛出,一般是不需要,让最上层处理就可以。
特殊如非托管资源,就最好用using(){} ,否则就必须try catch{手动释放函数}.
出现异常的处理结果
1.提示我们如何修正程序,处理某些未处理的异常。以便此异常处于我们的正确的逻辑处理中,以后不再显示。
2.或者提示使用者修正使用行为。
所以 在 .net 中 ,一般可以不处理异常,不处理是因为.net 已经帮我们做了 默认动作。就是上抛 和无人处理就显示出来。这个就是一个完备的处理流程,使用这么完备的异常机制的代价是0. 就是不用做额外工作。
除非面对 非退管资源。最好 using(){}, 或异常时释放资源:try catch{手动释放函数}.
.net 牛,最现代的语言.可惜没搞过 java.
如何大改页面
最好的方式就是沿着新写页面的方式来进行,把其他方式全部注释掉。一个方法一个方法写,测试。