我想知道用工厂作为参数到底比直接用接口作为参数好在哪里。在调用把工厂作为参数的方法时,虽然不用指明实现接口的类,但是要指明实现工厂的类,并没有提高代码的重用性啊。请大家指点。
解决方案 »
- java入门提示
- java连接Sql Server2005数据库,出现NullPointerException异常?
- 可否在hibernate设置了many-to-one后,依然保持表中的所有属性
- 13位数应该用什么类型?且如何转换为("yyyy-MM-dd HH:mm:ss")格式的时间?
- Oracle client Thin Driver可以执行create database mydb ...语句吗?
- 解惑,问个数组的问题
- 简单,高分!!我怎么样能去得14天后的时间
- javadoc怎么生成当前目录源程序的文档?没有用包。
- 请求组织点拨一个困了我24个小时的通信程序故障的修改方案.
- java doom4j怎么解析xml下同一根节点的相同子节点
- 关于 Character
- spring 怎么用事务
如果你接口做参数的话,那么你还得去实例化实现接口这个类。。
你感觉哪个更方便点呢?
这就好比人、工厂、和斧子的问题建议去看看《spring2.0开发宝典》
public interface ProductA {}public class ProductA1 implements ProductA {}
public class ProductA2 implements ProductA {}public interface ProductB {}public class ProductB1 implements ProductB {}public class ProductB2 implements ProductB {}public interface Creator { public ProductA factoryA();
public ProductB factoryB();
}public class Creator1 implements Creator { public ProductA factoryA() {
return new ProductA1();
} public ProductB factoryB() {
return new ProductB1();
}}public class Creator2 implements Creator { public ProductA factoryA() {
return new ProductA2();
} public ProductB factoryB() {
return new ProductB2();
}}public class Client {
ProductA pa;
ProductB pb;
public static void main(String[] args) {
Client client = new Client();
Creator1 c1 = new Creator1();
client.pa = c1.factoryA();
client.pb = c1.factoryB();
System.out.println(client.pa);
System.out.println(client.pb);
}}