举个例子:
接口:
package com.iweb.factory;
public interface Sender {
public abstract void send();//接口中只有一个send方法
}
用于判断的中转站:
package com.iweb.factory;
public class SendFactory {
/**
* 返回类型是sender,生产方法
* 判断要生产的是哪个工厂类,返回new出来的新对象
*/
public Sender produce(String type){
if("mail".equals(type)){
return new Msend();
}else if("mes".equals(type)){
return new Esender();
}else{
System.out.println("none");
return null;
}
}
}
两个实现类:
package com.iweb.factory;
public class Msend implements Sender {
@Override
public void send() {
// TODO Auto-generated method stub
System.out.println("this is mail-sender");//实现了sender接口,重写了send方法
}
}
package com.iweb.factory;
public class Esender implements Sender {
@Override
public void send() {
// TODO Auto-generated method stub
System.out.println("this is mes-sender");//实现了sender接口,重写了send方法
}
}
测试类:
package com.iweb.factory;
public class Test {
public static void main(String[] args){
SendFactory a = new SendFactory();
Sender sender = a.produce("mail");
sender.send();
}
}