编辑: You—灰機 2016-09-20

} public class BenzDriver implements Driver{ public Car driverCar() { return new Benz() ;

} } public class BmwDriver implements Driver{ public Car driverCar( return new Bmw() ;

} } / / 应该和具体产品形成对应关系. . . / / 有请暴发户先生 public class Magnate { public static void main(String[] args) { try{ Driver driver = new BenzDriver() ;

Car car = driver. driverCar() ;

car. drive() ;

} …… } 可以看出工厂方法的加入, 使得对象的数量成倍增长. 当产品种类非常多时, 会出现大 量的与之对应的工厂对象, 这不是我们所希望的. 因为如果不能避免这种情况, 可以考虑使 用简单工厂模式与工厂方法模式相结合的方式来减少工厂类: 即对于产品树上类似的种类 (一般是树的叶子中互为兄弟的) 使用简单工厂模式来实现. file:///E|/上传工具/docinbao/download/设计/设计模式.txt[2011-4-4 12:02:22]

五、 小结 工厂方法模式仿佛已经很完美的对对象的创建进行了包装, 使得客户程序中仅仅处理抽 象产品角色提供的接口. 那我们是否一定要在代码中遍布工厂呢? 大可不必. 也许在下面情 况下你可以考虑使用工厂方法模式:

1 ) 当客户程序不需要知道要使用对象的创建过程. 2) 客户程序使用的对象存在变动的可能, 或者根本就不知道使用哪一个具体的对象. 简单工厂模式与工厂方法模式真正的避免了代码的改动了? 没有. 在简单工厂模式中, 新产品的加入要修改工厂角色中的判断语句;

而在工厂方法模式中, 要么将判断逻辑........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题