上次说到了装饰设计模式,接着说工厂设计模式
工厂设计模式的作用就是用来创建对象的
对大量实现了相同接口的类(或者继承了相同父类的类)进行实例化
创建一个接口,不同的类有不同的实现
interface Send{
public void Send();
}
class EmailSend implements Send{
public void Send(){
System.out.println("email send");
}
}
class JMSSend implements Send{
public void Send(){
System.out.println("JMS send");
}
}
1:简单工厂模式
class Factory{
public Send produce(String ss){
if("mail".equals(ss))
return new EmailSend();
else if("jms".equals(ss))
return new JMSSend();
else
return null;
}
}
2:多个方法工厂模式
class Factory2
{
public EmailSend getInstance()
{
return new EmailSend();
}
public JMSSend getInstance2()
{
return new JMSSend();
}
}
3:静态工厂模式
class Factory3
{
public static EmailSend getInstance()
{
return new EmailSend();
}
public static JMSSend getInstance2()
{
return new JMSSend();
}
}
当接口的子类增加时,需要修改工厂类,违背了闭包原则(即Java中一个类如果写好了,就最好不要再去修改了)
于是就需要抽象工厂模式:
为所有的工厂类定义一个接口
interface gongchang
{
public Send produce();
}
class Factory4 implements gongchang
{
public Send produce() {
return new EmailSend();
}
}
class Factory5 implements gongchang
{
@Override
public Send produce() {
return new JMSSend();
}
}
目前就学了单例设计模式,模版设计模式,装饰及设计模式,工厂设计模式这四个,关于设计模式就先总结到这,以后学早了其他的设计模式,在继续添加