设计模式---工厂模式

来源:互联网 发布:淘宝怎么借贷 编辑:程序博客网 时间:2024/04/30 15:31

了解了程序设计原则,设计模式就是对设计原则更具体的使用。

我理解的工厂模式其实就是对面向接口编程(依赖倒转原则),最少知道原则等设计原则的使用。

比如设计一个发信息的功能,首先建立一个信息的接口,有邮件、短信、微信等等的实现类。

如果不使用工厂模式,我们在客户端或者高层的实现类里,要判断具体发什么信息,实例化对应的类,这样客户需要知道很多东西,需要知道要发邮件,需要实例化邮件的类等等等等。

而如果使用工厂模式的话,需要再建一个工厂类,封装了创建具体实例的方法,客户只需要知道信息接口,再给工厂一个暗示,工厂会自动创建具体的实例。这样客户想实现什么功能,只需要知道名字就可以,只需要关注产品的接口,不用管怎么实现的。扩展性也较好,想增加一个功能,只需要扩展工厂类就可以。缺点是增加了系统的复杂度。所以具体使用要根据实际情况来确定。

客户

public class SenderClient {public static void main(String[] args){FactoryDemo factory = new FactoryDemo();Sender sender = factory.getSender("WeChat");sender.send();}}


工厂

public class FactoryDemo {public Sender getSender(String senderType){if(senderType==null || senderType.isEmpty()){return null;}if(senderType.equals("Message")){return new MessageSender();}else if(senderType.equals("Email")){return new EmailSender();}else if(senderType.equals("WeChat")){return new WeChatSender();}return null;}}


日常用到工厂模式的有 1、日志记录,用户只管配置好,输出到文件,控制台还是远程服务器等,不用管怎么实现,由工厂来做。

2、数据库访问,访问的可能是mysql,oracle等。


上面个人总结理解,如果有什么不对的,还请指出。


1 0
原创粉丝点击