- 3
- 0
- 约 39页
- 2016-11-27 发布于河南
- 举报
7 Factory Method(工厂方法)
Factory Method(工厂方法)——建立对象实例交给子类 代码 public class StampedeSimulator { Actor actor = null; public void addActor(String type) { if (type.equals(“buffalo”)) { actor = new Buffalo(); } else if (type.equals(“horse”)) { actor = new Horse(); } else if (type.equals(“cowboy”)) { actor = new Cowboy(); } else if (type.equals(“cowgirl”)) { actor = new Cowgirl(); } }…… } 代码 这段代码中包含了四个不同的具体类(Buffalo, Horse, Cowboy, and Cowgirl),结果他建立了依赖关系在你的代码和这些具体类之间 如果你要加入一个新的类型(比如Coyote),你将重新修改你的代码,这造成难维护性 可能类似的代码会遍布你的所有 代码中,如果你要修改这个代码需要到多处修改 代码 有没有一个好的方法减少具体类的依赖呢?减少你大量的代码维护工作?办法就是使用Factory 定义 为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,提高灵活性 简单工厂(Simple Factory) 工厂方法(Factory Method) 抽象工厂(Abstract Factory) 简单工厂——定义 简单工厂(Simple Factory) 又称静态工厂方法,定义了一个用于创建对象的接口 简单工厂——定义 Creator: 工厂类角色 核心,负责创建所有实例的内部逻辑 Product: 抽象产品角色 具体产品继承的父类或实现的接口 Concrete Product: 具体产品角色 工厂类所创建的对象就是此举色的实例 简单工厂——定义 简单工厂——程序示例 汽车工厂,生产不同型号的汽车 简单工厂——类、接口清单 Car类 public interface Car{ public void drive(); } SmallCar类 public class SmallCar implements Car{ public void drive(){ System.out.println(“Small Car”); } } BigCar类 public class BigCar implements Car{ public void drive(){ System.out.println(“Big Car”); } } CarFactory类 Public class CarFactory{ public static Car produce(String s) throws Exception{ if(s.equalsIgnoreCase(“small”)) return new SmallCar(); else if(s.equalsIgnoreCase(“big”)) return new BigCar(); } Main类 public class Main{ public static void main(String[] args){ try{ Car car = CarFactory.produce(“small”); car.drive(); }catch(Exception e){ e.printstract(); } } } 简单工厂——说明 把类的实例化工作,集中到一个“工厂类”去处理,而不要分散写在各个类中 产品具体的实现能和客户端隔离 客户端程序,与创建实例的工作必须隔离,亦即“解耦”,客户端程序只要专注于自己的业务逻辑 适用于客户端程序在开发过程中,尚无法预知要创建的具体类型。 简单工厂——说明 客户端程序仍有创建对象的决定权,与创建实例 (对象) 的工作并未真正隔离 每增加一个新产品,都要增加相应的业务逻辑 产品可能是一个多层次的树状结构,工厂类会非常“累”
您可能关注的文档
最近下载
- 求职简历模板免费下载-简历模板免费下载-word.docx VIP
- 2024年医院行风建设总结.pdf VIP
- FR 6011 说明书.pdf VIP
- 2025年中考物理总复习:压强(讲义)解析版.pdf VIP
- 酸碱盐-初升高化学知识复习讲义(人教版).pdf VIP
- 农业开发生态养鸡项目实施方案(有全套附表附图).doc VIP
- 劳动合同范本(2026年通用版,带试用期条款).docx VIP
- 医疗器械软件注册审查指导原则(2022年修订版)20220309.pdf VIP
- 老电影收藏1(1949—1966).doc VIP
- 西南18J517_厨房_卫生间_浴室设施_标准图集.pdf VIP
原创力文档

文档评论(0)