什么叫高内聚?
恩,我想问4个问题,大都是关于高内聚的高内聚,低耦合.这可以说是面向对象设计的核心思想了
可是我仍然还是对这个概念不大理解
(1)所谓的高内聚是不是说把一个类中相关的方法和变量都封装到该类中??
如果我要设计一个项目,恩~随便一个项目好了,比如一个论坛吧~
用户信息肯定是要做为一个类存放的了,这个类中有许多的变量,比如说name,sex,password,birthday等等等等,然后是进行数据库的
写入操作把用户信息保存到数据库中,我们将会用SQL语句,然后读出的时候我们又要用到SQL语句.问题就在这些SQL语句上.
因为在这些SQL语句上出现了name,sex,password,birthday等等列名,我觉得这有违背低耦合的设计思想,因为我一旦在用户信息表
里面添加了列名我要改动的就不仅仅是用户信息类那么简单了,我还必须得改动相关的SQL操作语句.
所以我想在这里用用户信息类中写两个工具方法,getInsertSQLState()和getSelectSQLState()这样就可以动态的生成SQL语句,随意添加/删除用户信息也就不会出现我刚才所说的高耦合的问题了.
但是~~我想要问的问题就是:
面向设计和结构化设计中都有一个原则叫: SRP (Single Resopnsibility Principle)
也就是说一个类或者一个方法,一个函数只需要一个职责
可是我现在已经让 用户信息 类集成了与用户信息无关的东西了(写SQL是数据库类的事情)
(2)我这样设计对不对?
(3)我这样设计算不算是高内聚?
(4)我这样做到底是不是违背了SRP原则?
[此贴子已经被作者于2005-10-22 15:44:28编辑过]
搜索更多相关主题的帖子:
SQL 数据库 内聚 面向对象 变量
----------------解决方案--------------------------------------------------------
内聚在软件工程概念中的定义是:一个模块内部各成分之间相互关联的强度。
----------------解决方案--------------------------------------------------------