工厂模式
1.工厂方法模式
工厂:生产对象,一个工厂是只能生产一种对象的(就算是普通工厂,他虽然通过判断不同的字符串来实列化不同的对象,但是这些对象其实都是实现了同一个接口的)
假设有一个接口
public interface Sender {
void send();
}
两个实现类
public class SendMsg implements Sender{
@Override
public void send() {
System.out.println("send msg......");
}
}
public class SendEmialImpl implements Sender {
@Override
public void send() {
System.out.println("send emial......");
}
}
1.1普通工厂
//普通工厂模式
public class EasyFactory {
public Sender createObject(String name)
{
if(name.equalsIgnoreCase("msg")){
new SendMsg();
}
if(name.equalsIgnoreCase("eml"))
{
return new SendEmialImpl();
}
return null;
}
}
1.2多个工厂
public class ManyFactory {
//单个工厂的话如果字符串传递错误会导致对象创建失败
public Sender getSendEmial()
{
return new SendEmialImpl();
}
public Sender getSendMsg()
{
return new SendMsgImpl();
}
}
1.3.静态工厂
public class StaticFactory {
public static Sender getSendEmial()
{
return new SendEmialImpl();
}
public static Sender getSendMsg()
{
return new SendMsgImpl();
}
}