有待需要弄明白的东西1
1、今天编程有个问题,貌似关于实例的独立性。
事是这样的:
我们队在web开发。
数据库有3表:1.角色表role(id,name,levelid) 2.用户表user(id,name,roleid) 3.角色等级表roleLevel(id,name)
我做的时候就把role对象设置了5个属性(id,name,levelid,levelname,count),这明显跟数据库的项不符合,经理说我这是在破坏实例的独立性。而我的意思是想面向对象编程,role对象应该知道levelname(角色等级名字),此角色应该知道自己的count(用户数),然后controller就不需要做任何过程的东西(先拿role,再拿等级名,再拿用户数。还有人说我可以用一条sql语句和一个map把所有的东西都包含进去,可是我觉得你本来role就没有定义。那已经不是role对象了),controller只需要判断我需要跳转到那个页面,页面问controller要数据,controller就问dao直接拿。而不是contoller先分解需要拿的东西,然后再一个一个的问到拿。(例如:我问dao,我需要role,他直接返回role所具有的所有属性。)然后controller直接给页面去。页面拿到的是一个dao给的对象,页面也不需要知道对象是怎么样子的。只需要拿出来role,叫role,你这个id属性放这,你这个用户数放这。名字放那边。但是如果你是用一条sql语句和一个map组合出来的一个对象。那么页面是需要自己搬东西的。对象话就会变成:role,你把id放这,把name放那。然后页面自己去把count拿出来放到应该放的地方。
文笔不是很好,不知道表达有没有清楚。大概我自己的感受是这样子。是我把对象化做得太极端而破坏了实例的独立性。还是实例的独立性阻碍了对象化?