日产

大白话简单工厂模式 (Simple Factory Pattern)

十年热恋 提交于 2020-02-08 09:17:16
大白话简单工厂模式 (Simple Factory Pattern) 从买车经历说起 毕业两年,码农张小两口无法忍受挤公交,凌晨起床抢火车票的痛苦,遂计划买车。逛了多家4S店,最终定下日产某车型的轿车。4S店接受订单后,向工厂说明车型,工厂随后进行汽车制造,运输到4S店中再到了小两口的手上,小两口终于成了有车一族。 仔细分析,4S销售模式即为典型的简单工厂模式。下面从代码的角度进行分析。 无工厂模式 首先,我们先分析4S店最初的模式(企业个人作坊阶段,无工厂)。4S店卖车首先要有车,这里只取日产部分车型逍客,轩逸和天籁。 代码片段1 日产车父类,所有车型都继承此类。 /** * 日产车 * @author coderzcr */ abstract class NissanCar { String name ; void printCar ( ) { System . out . println ( name + "汽车已制造完成" ) ; } } 代码片段2 车型:逍客 /** * 车型:逍客 * @author coderzcr */ class Xtrail extends NissanCar { Xtrail ( ) { this . name = "逍客" ; } } 代码片段3 车型:轩逸 /** * 车型:轩逸 * @author coderzcr */ class

大白话抽象工厂模式(Abstract Factory Pattern)

五迷三道 提交于 2020-01-06 22:23:18
实例分析 大白话工厂方法模式(Factory Method) 一文中,我们讲解了日产4S店工厂规模的扩大,创建了针对不同车型的工厂,减少了工厂的工作内容,提高了效率。下面我们继续以4S店的故事讨论抽象工厂模式。 为了满足各个阶层的客户,日产公司推出了豪华系列品牌 英菲尼迪 ,而且为了吸引客户购买,购车赠送行车记录仪,购买日产汽车赠送日产行车记录仪。购买英菲尼迪汽车赠送英菲尼迪行车记录仪。 通过上面的描述我们引出产品族和等级结构的定义。 产品族 :即来自一个家族,比如英菲尼迪汽车和英菲尼迪行车记录仪都来自英菲尼迪家族,日产汽车和日产行车记录仪都来自日产家族。 等级结构 :可以理解为相同的产品,比如英菲尼迪汽车和日产汽车处于同一个等级结构,英菲尼迪行车记录仪和日产行车记录仪处于同一个等级结构。 现在假设工厂分为日产工厂和英菲尼迪工厂,且汽车和行车记录仪都只有一种型号。日产工厂需要生产相同产品族的日产汽车和日产行车记录仪。英菲尼迪工厂需要生产相同产品族的英菲尼迪汽车和英菲尼迪行车记录仪。 通过对比,发现和工厂方法模式的区别为: 工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构 代码如下: 代码片段1 汽车父类 /** * 汽车的父类 * @author coderzcr */ public abstract class Car { String name ;