Posted on 2010-04-02 14:27
java小爬虫 阅读(1835)
评论(0) 编辑 收藏
简单工厂模式
就是,对对象实例化的过程和需要实例化的对象进行细节上的封装。
优点:工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关类。对于客户端来说,去除了与具体产品的依赖。
缺点:当需要增加产生一个新对象实例的方法时,需要修改工厂类,这样,工厂类就违背了“开-闭原则”。
工厂方法模式
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到了子类。
工厂方法模式实现,客户端进行工厂的实例化,产生哪一个工厂实例的逻辑判断依然存在。工厂方法把简单工厂内部逻辑判断转移到了客户
端。工厂方法模式就是利用了“依赖倒转原则”解决了简单工厂模式违背“开-闭原则”的问题。
抽象工厂模式
提供一个创建一系列相关或者相或依赖对象的接口,而不需要指定它们具体的类。
通常在运行时刻产生一个ConcreteFactory实例,这个具体工厂再创建具有特定实现的产品实例。为创建不同的产品对象,客户端应使用不同的具体工厂。
优点:易于改变产品系列;具体的创建过程与客户端分离,客户端操作抽象接口产生实例。
缺点:增加一种产品(对象),需要改变的地方很多。
用简单工厂来改进抽象工厂
用反射+抽象工厂进行改进
所有用简单工厂的地方,都可以考虑用反射来解除if,case判断语句带来的耦合。
用反射+配置文件进行改进