2009-3-11

半年了。

我甚至没有一个需求。自己提需求,自己实现,很糟糕的事情。因为我每天都有新的想法,产生不一样的需求。我在学习设计模式,它对我暂时还没有多少帮助。

程序已经有了一些规模了,但之前没有一个设计文稿,哪怕是模糊的东西。应该有个清晰的设计文稿,再开始动手,但是那似乎太困难了。这造成脑子里每天对实现的想法都不一样。如果不想办法记下来,恐怕很多想法都没有意义。

开发这个东西最主要是学习设计和实现这些设计,因此,这里有一些原则:实现的功能是次要的,关键是如何实现!代码的细节是否清晰不重要,重要的是宏观上是否清晰。最后,它应当是我做过的最好的--不是应付来的。

 

我有了一些类,UserRoleGroupNews…这些。他们能够通过数据库中的数据实例化,也可以实例化他们再存入数据库。所以应当有个列表控件,他能够将这些类似User [] 类型的数据产生一个列表,这个列表有类似GridView控件中那些常用的功能,比如删除,更新以及查看。我觉得应当有个List类来负责输出这些html字符串。它接收一个Collection类型的对象和一个需要显示的字段名称列表,还有更多的参数:新增地址、查看地址、修改地址等等。实现List类的原则是我不用为每个需要列表的类型书写产生html字符串的程序模块。或者我设计一个IList接口。如果有一些List类继承自该接口并负责具体的实现,而这些类能够成为UserRole等的成员。--将方法封装起来!这就是策略模式啦。当然,这里不一定要搞得这么复杂。

 

呵呵,这里要用到反射了,因为List类不知道传进来的Collection里面是什么类型,而如果使用类似使用”Name”来引用user.Name就只能通过类似如下的代码片段了:

        Object strObj = new Object();

        strObj="将获取string类型"; //获得了具体类型

        string propertyValue = strObj.GetType().GetProperty("Length").GetValue(strObj, null).ToString();

似乎逻辑还算清晰,不过有时间去看看反射的原理再动手,估计性能会受到影响。恩,明天动手。

posted @ 2009-03-12 00:51 Dexter 阅读(15) 评论(0) 编辑