0%

设计模式笔记(三):创建型-工厂模式

##工厂模式(factory pattern):

####意图
定义一个创建对象的接口。让其子类决定实例化那一个工程类,工厂模式将其创建过程延迟到子类中
####主要解决
主要解决接口选择问题。
####何时使用
在不同条件下创建不同实例。
####如何解决
让其子类实现工厂接口,返回的也是一个抽象的产品。
关键代码
创建过程在其子类中执行。
####优点
1,一个调用者创建一个对象。只要知道对象名旧可以 。

2,扩展性高,想增加一个产品,扩展一个工厂类就可以。
3,屏蔽产品实现。调用者只需要知道产品接口。
####缺点
每次增加产品,都需要增减一个实现类和对象实现工厂,增加系统复杂度。增加系统具体类依赖
####使用场景
1,日志记录,记录可能记录到硬盘,数据库,用户可以选择记录到哪里
2,数据库访问,当用户不知道访问什么类型数据库的时候,hibernate方言就是这
3,设计链接服务器的框架,需要三个协议“pop3”,“imap”,“http” 设计成产品类,共同实现一个接口。
####注意事项
当需要生成一个复杂对象的时候使用。如果是简单对象。不要使用工厂模式。会增加系统复杂度

####个人总结:工厂模式适合在那些大体相同。但是细节不同的相似对象。例如hibernate方言。为了能自动选择方言编写的自动方言工厂类,但是工厂模式不适用于简单对象。
####代码地址:https://github.com/xuxianyu/myGitHub/tree/master/DisignPattern/src/main/java/com/xxx/create/factory