ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 软件工程 >> 细说工厂模式之抽象工厂模式(三)

细说工厂模式之抽象工厂模式(三)(1/4)

来源:网络整理     时间:2016-07-14     关键词:

本篇文章主要介绍了" 细说工厂模式之抽象工厂模式(三)",主要涉及到方面的内容,对于软件工程感兴趣的同学可以参考一下: 前面两篇文章分别介绍了简单工厂模式跟一般工厂模式,本篇文章将继续介绍工厂模式中的终极模式-抽象工厂模式细说工厂模式之简单工厂模式(一)细说工厂模式之一般工厂模式...

前面两篇文章分别介绍了简单工厂模式跟一般工厂模式,本篇文章将继续介绍工厂模式中的终极模式-抽象工厂模式

细说工厂模式之简单工厂模式(一)

细说工厂模式之一般工厂模式(二)

在一般工厂中我们可以看到可以用乐视电视工厂来生产乐视电视,小米工厂来生产小米电视。已经很好的实现了开闭原则。但是相比较而言,偌大的工厂就只安装电视生产线,是不是有点大材小用了。咱们看看富士康的工厂可以干吗,既可以为苹果生产手机,也可以为它生产Ipad,没准将来苹果汽车出来了还可以为它代工汽车呢。所以在一个工厂中,咱们可以把一类产品当成一条生产线,以乐视工厂为例,它不光可以生产乐视超级电视,也可以生产乐视超级手机,电视跟手机分别作为其工厂的两条生产线就行了。在咱们的设计模式中,就可以把这一模式很好的借鉴过来。

从上面的实例类图中可以看到,相比一般工厂模式,咱们增加了手机这条生产线。他们还是有他们各自的工厂来生产,也就是,小米的手机跟电视由小米工厂来实现。同理,海信的工厂可以生产海信电视跟海信手机(咱们姑且就认为海信也有手机吧)。其实,将来如果乐视跟小米造汽车的话,我们可以很方便的再添加一个汽车家族,然后还是通过他们家的工厂来生产。咱们接下来来看看他们怎么通过Java来实现哈。

ITV抽象类跟前面两篇文章中是一样的,为了方便阅读,我还是把它贴了上来。

package com.weiyu.factory;

/**
 * Created by Sam on 7/14/2016.
 *
 * 这里是一个抽象类,这里有获取价格以及生产过程这两个抽象方法
 */
public abstract class ITV {
    /**
     * price方法定义每台电视的售价,具体的售价由其子类来实现
     */
    public abstract void price();

    /**
     * 描述了每台电视的生产过程,具体的生产过程由其子类实现
     */
    public abstract void produceProcess();
}

抽象的父类中有priceproduceProcess两个方法,分别用来定义每台电视的价格以及电视的生产过程。接着咱们分别来写他的三个子类。

LeTV

package com.weiyu.factory;

/**
 * Created by Sam on 7/14/2016.
 */
public class LeTV extends ITV {
    @Override
    public void price() {
        System.out.println("乐视超级电视每台售价5000元");
    }

    @Override
    public void produceProcess() {
        System.out.println("乐视电视生产过程由部分国产代工厂以及富士康代工");
    }
}

MiTV

上一篇spring 下一篇lucence源码分析---3

相关图片

相关文章