如果我做了一个抽象类,里面有若干抽象属性
而另一个类的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哪个方法好,为什么?分数不多还请大家多多包涵
而另一个类的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哪个方法好,为什么?分数不多还请大家多多包涵
如果 我的10个类里面f方法都使用了这个 方法2
而我的这个类分布在不同的Dll里面,当我需要变动A的时候,那不是一件很糟糕的事情么?方法1虽然也要改变,但是我把这些类似方法的调用都写在一起,到时候我我只需要改很少的地方就可以了。我的理解是用了f(A a) f就被A绑定了,个人感觉耦合性很高
要是楼主有这样的想法的话,说明你的抽象类设计的不好
如果f()里面的参数是具体的类的话,还能说是耦合很高
都用抽象类带进去了,这个耦合就不高了吧
比如还有class B:A,class C:A,
f() 的参数跟B,C就没有具体的联系了
这样不错的吧
方法二是不错的