如果我做了一个抽象类,里面有若干抽象属性
而另一个类的public方法需要的参数刚好就是这些抽象属性的值例如String我是传递抽象类子类的实例好呢?还是传递属性好?
public abstract class A
{
   public abstract String Name { get;}
   public abstract String Sex { get;}
   public abstract int Age { get;}
   ……//若干属性
}
class Aa:A
{
   //实现属性
}public void f(){}//这个方法需要Aa的抽象属性,若干个,可能全部需要,也可能只需要一部分
public void f(String name,String sex,int age)//方法1
{
    //相关操作
}public void f(A a)//方法2
{
   String name = a.Name;
   String sex = a.Sex;
   int age = a.Age
}
问题:方法1和方法2哪个方法好,为什么?分数不多还请大家多多包涵

解决方案 »

  1.   

    为什么?方法2的话
    如果 我的10个类里面f方法都使用了这个 方法2
    而我的这个类分布在不同的Dll里面,当我需要变动A的时候,那不是一件很糟糕的事情么?方法1虽然也要改变,但是我把这些类似方法的调用都写在一起,到时候我我只需要改很少的地方就可以了。我的理解是用了f(A a) f就被A绑定了,个人感觉耦合性很高
      

  2.   

    http://topic.csdn.net/t/20021001/12/1067924.html
      

  3.   

    我的理解是用了f(A a) f就被A绑定了,个人感觉耦合性很高
    要是楼主有这样的想法的话,说明你的抽象类设计的不好
    如果f()里面的参数是具体的类的话,还能说是耦合很高
    都用抽象类带进去了,这个耦合就不高了吧
    比如还有class B:A,class C:A,
    f() 的参数跟B,C就没有具体的联系了
    这样不错的吧
    方法二是不错的