一个工厂方法的问题
小弟最近正在研读java与模式。看到工厂方法并自己做了一个小例子已实现其思想。从中遇到了一个问题颇为不解。敢问那位高手可以给小弟指点迷津。不胜感激。
源代码是这样的:总共建了5个类:Creator,ConcreteCreator,Product,Product1,Client
抽象工厂类Creator:
public interface Creator
{
public Product factory();
}
具体工厂类ConcreteCreator:
public class ConcreteCreator implements Creator
{
public Product factory()
{
return new Product1();
}
}
抽象产品类:Product
public interface Product
{
}
具体产品类Product1:
public class Product1 implements Product
{
public Product1()
{
System.out.println("This is Product1.");
}
public void display()
{
System.out.println("This is product1 displayed.");
}
}
测试客户端Client:
public class Client
{
public Client(){}
public static void main(String[] args)
{
ConcreteCreator cc = new ConcreteCreator();
Product1 p = cc.factory();
p.display();//There is a error called: cannot resolve symbol:
//method display in interface Product at line 10;
}
}
问题就出在p.display()上。由于采用了依赖倒转原则,具体产品由它的抽象接口Product引用,但是引用以后,他却不具有display方法。小弟百思不得其解。我将cc.factory();用Product1强制类型转换也不能通过。我用的IDE环境是JBuilder9,jdk是jdk1.4