最近在学习java的设计模式,不知道自己的理解对不对发出来让各位大神帮忙把把关!
静态工厂方法模式,将多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。
例子:
第一步,创建接口
/*** 接口* @author Administrator**/
public interface Sender {/*** 发送消息*/public void send();
}
第二步,创建接口实现类分别为qq、email、sms三个实现类
public class QqSender implements Sender {@Overridepublic void send() {System.out.println("调用qq邮箱发送!");}}
/*** email发送消息* @author Administrator**/
public class MailSender implements Sender {@Overridepublic void send() {System.out.println("email发送消息");}
}
sms
/*** sms发送消息* @author Administrator**/
public class SmsSender implements Sender {@Overridepublic void send() {System.out.println("sms发送消息");}}
第三步,创建消息发送工厂及方法
public class StaticSendFactory {/*** new email 发送消息实体* @return*/public static Sender produceMail() {return new MailSender();}/*** new sms 发送消息实体* @return*/public static Sender produceSms() {return new SmsSender();}/*** new qq 发送消息实体* @return*/public static Sender produceQq() {return new QqSender();}}
第四步,测试类测试
public class StaticSendFactoryTest {public static void main(String[] args) {Sender sender = StaticSendFactory.produceMail();sender.send();}
}
个人理解:在多个工厂方法模式下降所有的方法static 静态化,在使用的时候不用在new对象了,仅此而已。