个人感觉楼主可以去看看spring的相关理论。 spring编程应该算是接口编程。 抽象上感觉根抽象类没什么实质区别。 不过个人感觉,接口可以解耦。 解耦就是类与类之间的依赖少了。 那么相互影响就少。 随之带来了像便于扩展,便于修改, 结构清晰等等好处。 举个简单的例子 我有一个类,方法dogrun是让狗跑。 public class A { Dog g; public void dogrun() { g.run(); } } 可后来我发现我要加一个方法让猫跑。 public class A { Dog g; public void dogrun() { g.run(); } Cat c; public void catrun() { c.run(); } } 代码不好 重构 public class A { Animal a; public void run() { a.run(); } } 此时可以看到,我定义一个接口animal 显然就比单独定义狗猫类要好。 当然这句话是马后炮。此处之所以用接口不用抽象类是因为 抽象类对类结构要求严格,使用上有很多不便。
spring编程应该算是接口编程。
抽象上感觉根抽象类没什么实质区别。
不过个人感觉,接口可以解耦。
解耦就是类与类之间的依赖少了。
那么相互影响就少。
随之带来了像便于扩展,便于修改,
结构清晰等等好处。
举个简单的例子
我有一个类,方法dogrun是让狗跑。
public class A {
Dog g;
public void dogrun() {
g.run();
}
}
可后来我发现我要加一个方法让猫跑。
public class A {
Dog g;
public void dogrun() {
g.run();
}
Cat c;
public void catrun() {
c.run();
}
}
代码不好 重构
public class A {
Animal a;
public void run() {
a.run();
}
}
此时可以看到,我定义一个接口animal
显然就比单独定义狗猫类要好。
当然这句话是马后炮。此处之所以用接口不用抽象类是因为
抽象类对类结构要求严格,使用上有很多不便。