最近在学习spring源码,在spring里应用的一些设计模式,特意总结出来.
普通工厂目的:对实现了同一接口的一些类进行实例的创建(就是在工厂模式把实现一个接口的所有的类都创建创建对象new)
实例:
1.创建一个要被实现的接口:
public interface Sender {
public void send();
}
2.创建两个实现Sender接口的类
(1).
public class MailSender implements Sender {
@Override
public void send() {
System.out.println(“this is mailsender!”);
}
}
(2).
public class SmsSender implements Sender {
@Override
public void send() {
System.out.println(“this is SMS sender!”);
}
}
3.创建普通工厂模式:
public class SendFactory {
//返还是interface Sender 不是具体实现接口的实体类
public Sender produce(String type){
if(“mail”.equals(type)){
//创建对象
return new MailSender();
}else if(“sms”.equals(type)){
return new SmsSender();
}else {
System.out.println(“请输入正确的类型!”);
return null;
}
}
}
4.测试类:
public class FactoryTest {
public static void main(String[] args){
//创建工厂模式
SendFactory factory = new SendFactory();
Sender sender = factory.produce(“sms”); //普通工厂模式创建对象
sender.send();
}
}