您的位置:首页 > 编程语言 > Java开发

设计模式之工厂模式

2017-10-25 09:33 190 查看
工厂模式,创建型模式

顾名思义,工厂是用来生产批量货物的,比如你是4S店,你现在需要宝马、奔驰、保时捷车辆,你只需要把提货单交给工厂,然后工厂根据提货单将车辆送到你家4S店,你并不需要知道制作车的流程,这就是所谓的工厂。映射到类中,我们需要创建一个车工厂类(CarFactory),我们需要什么,比如宝马,就告知工厂类,然后让工厂类来进行实例化。

步骤1:创建接口Car



步骤2:创建实体类Benz(奔驰)、BMW(宝马)、等等,这些类去实现接口Car





步骤3:创建一个工厂,用来造这些车,也就是根据用户的要求来实例化哪种车。



步骤4:实体类已创建好,共产类也创建好,现在S4店发来提货单,我们需要根据提货单来实例化车的对象



步骤5:通过步骤4实例化了奔驰车和宝马车,那就可以将这些车送到4S店了。

如果4S店又新增保时捷车提货单,则应该怎么办呢?

首先:创建实体类Porsche(保时捷),



然后:在工厂类中新增Porsche的实例化,更改如下:



最后:在FactoryPatternDemo中,将所需要的提货单传给工厂。



工厂类的优点:不需要知道产品内部是怎么构造的,只需要知道名字就行,其他内部实现交给工厂类

工厂类的缺点:增加了一个Porsche车,则需要增加Porshce具体类,然后在工厂类需要去实现,

需要修改工厂类,当产品过多时,则需要经常修改工厂类,不符合“对扩展开放,对修改关闭”的原则。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息