跪求大家,帮我看看这个问题,谢谢!!!!!!!!!!!!!http://expert.csdn.net/Expert/topic/2633/2633574.xml?temp=.6377375

解决方案 »

  1.   

    我也Up一下我也Up两下!!!
    ^@^
      

  2.   

    同意:回复人: kypfos(现在,我该革谁的命) ( ) 信誉:99  2004-01-06 16:19:00  得分:0 
     
      高内聚低耦合
     
     
      

  3.   

    支持Saro(石头)的观点。
    我也是新手,大家共同进步。
      

  4.   

    同意:kypfos(现在,我该革谁的命)  
     
     高内聚低耦合这也是软件工程的要求
      

  5.   

    重用是以对象为目标,不是方法,你想重用方法的话把方法放到一个类里去;若一个方法太大,可以考虑将它的功能单独放到一个类里;这样可读性也强;对于你说的第二个问题,使用克隆,这样新的对象和原对象独立,就不会觉得变化不可知了。建议你好好理解什么是OOP
      

  6.   

    什么是OOP?我想我有一定的理解,不过楼上的兄弟建议我“好好”理解,我想也应该有他的道理,但是,就我所知,oop概念博大精深,单凭楼上的建议,我更不知道从何处看起,如果楼上的不介意的话,愿闻其祥,我应该理解oop的哪里?
      

  7.   

    TO 楼主:
    首先不要把你的视线锁定在“方法”上。面向对象关注的不是方法,基础的东东可以说是“抽象数据类型(ADT)”。焦点应该集中在这里,就是如何抽象出你的对象(或者叫做“类型”)是较为关键的。而你提到的关注方法的重用给俺的感觉还是过程的思维。在面向对象世界中,重用的单元不是针对“方法”重用的。方法仅仅是为类型提供的操作,脱离了ADT,单独重用方法是没有意义的,反而回到了过程化的思维。一起来回顾一下程序设计演变的道路:
    (1) 在过程化程序设计中,关注的事情是确定需要的过程,然后为已经确定的过程选择算法。这是一个简单过程设计的描述。
    (2) 然后,设计的重点开始了转移,从有关过程的设计转移到了对数据的组织了。因此出现了模块化程序设计:确定哪些模块,将程序分为多个模块,数据都隐藏在模块之中。(此时的Information Hiding原理也变得广为人知)。过程呢?就会被应用到各个模块之中去。
    (3) 其实模块化对于清晰表示复杂的系统还是不够的,因此又出现了数据抽象。这样工作的重点又变成了:确定需要哪些类型,然后为每个类型都提供完整的一组操作。对于好的面向对象设计,数据抽象是最基本的东西了。 再加上“抽象类型”,就可以单独分离出用户接口,分离用户接口的好处在于解除外界与实现的直接耦合。这就是楼上提过的“低耦合”,而实现的内部是“内聚”的。从以上的过程俺们可以看出,仅仅把注意力放在“方法”上实际是过程化设计所关注的事情。俺觉得你提出的问题不应该是关注的焦点。
      

  8.   

    TO xiaozuidazhi(以前不会用,导致信誉分低_我是好人!):借助俺的一个朋友,现回答你的第二个问题:
    <<
    首先考虑是否应该把它的方法拆开,它的方法是否做了太多的事?如果确实必要在一个方法里返回多个对象可以构造一个对象封装结果集,或者用List放回结果集。
    >>
    方法中修改参数是要避免的。
      

  9.   

    to ericylw(电脑) 那如果一个类里面有20个方法,每个方法有100行左右(这样很正常,甚至比这个还要多,繁)在类里面能不考虑低耦合高内聚吗?请不要动不动就oopoop,我看不管是什么p,都要是能让人感觉到很有道理,很应该那么做!
      

  10.   

    TO xiaozuidazhi(以前不会用,导致信誉分低_我是好人!):而第一个问题,俺觉得是你概念上的问题。耦合的基本单位可以被看作是类。为什么呢?一个类内部的实例方法本身就是或强或弱耦合在一起的。至少它们都通过同一个实例耦合在一起(如果一个实例方法既不依赖其他的实例方法,也不依赖于实例数据,那说明什么?说明它可能根本就不属于这里)。所以,没有必要考虑在方法之间解除耦合关系,当然相似的方法是可以抽离出来的,避免冗余的代码。而在一个方法内部,更谈不上降低耦合了,本身就是一个单元整体。
    所以类中的方法本来就是高耦合的,降低耦合没有什么意义。