(原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)

<原載於藍色小舖Blog 阿森的學習筆記 2006/09/04  Mon 12:03 PM>

PetShop有一个名为Model的Project,专门定义PetShop整个Solution中所有Object的Class,另外尚有BLL Project,负责商业逻辑组件的Project,若以OOA/D的角度来看,是否该将这两个Project拆开?还是该合而为一?

若以OOA/D角度来看,OO主要是为了『模拟世界,加以处理』,所以将实际世界中的人事物,透过抽象的方式,用『Object』模拟整个世界,再用『Class』将目前的『Object』做归纳,并用『Class』对未来的『Object』做演绎,而Object本身就应该有Property,Method和Event,而PetShop硬是将Model和BLL拆开,Model专司Property,而BLL专司Method,似乎有违OO中Object同时有Property,Method,Event的习惯。

唯一我认为PetShop可能的考虑是,由于Model Object常常需要当参数传递,若挂着BLL的一堆Method,可能使Model Object过于庞大而占不少内存,事实上,有一本讨论用.NET写n-tier的书面向对象分析设计与实作,他书中的范例程序,就是将BLL和Model就是合而为一,不过究竟PetShop的方式是否较好,我也尚无定论,只是若以OOA/D的观点,似乎将BLL和Model合而为一较为恰当。

posted on 2006-09-28 00:28  真 OO无双  阅读(2986)  评论(22编辑  收藏  举报

导航