工厂设计模式

上次说到了装饰设计模式,接着说工厂设计模式

工厂设计模式的作用就是用来创建对象的

        对大量实现了相同接口的类(或者继承了相同父类的类)进行实例化


创建一个接口,不同的类有不同的实现

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();
}
}

目前就学了单例设计模式,模版设计模式,装饰及设计模式,工厂设计模式这四个,关于设计模式就先总结到这,以后学早了其他的设计模式,在继续添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值