文档章节

抽象工厂模式

清尘V
 清尘V
发布于 2016/04/15 09:50
字数 375
阅读 25
收藏 0

定义宝马接口:

package com.whereta.abstractfactory;

/**
 * Vincent 创建于 2016/4/15.
 * 宝马接口:定义宝马车的类型
 */
public interface IBMW {
    void setType();
}

定义宝马车型具体实现类:

package com.whereta.abstractfactory;

/**
 * Vincent 创建于 2016/4/15.
 */
public class BMWX5 implements IBMW {
    public void setType() {
        System.out.println("我是宝马X5");
    }
}
package com.whereta.abstractfactory;

/**
 * Vincent 创建于 2016/4/15.
 */
public class BMWX6 implements IBMW {
    public void setType() {
        System.out.println("我是宝马X6");
    }
}

定义工厂接口:

package com.whereta.abstractfactory;

/**
 * Vincent 创建于 2016/4/15.
 * 宝马工厂接口:定义生成某个型号的宝马的工厂
 */
public interface IBMWFactory {
    IBMW produce();
}

定义工厂实现类:

package com.whereta.abstractfactory;

/**
 * Vincent 创建于 2016/4/15.
 */
public class BMWX5Factory implements IBMWFactory {
    public IBMW produce() {
        System.out.println("我生产BMWX5");
        return new BMWX5();
    }
}
package com.whereta.abstractfactory;

/**
 * Vincent 创建于 2016/4/15.
 */
public class BMWX6Factory implements IBMWFactory {
    public IBMW produce() {
        System.out.println("我生产BMWX6");
        return new BMWX6();
    }
}

测试

package com.whereta.abstractfactory;

/**
 * Vincent 创建于 2016/4/15.
 * 抽象工厂模式:相对于普通工厂模式,如果宝马新出一种车型,只需要新建一个宝马工厂即可,不会影响其他工厂接口和车型接口,有利于扩展
 */
public class Main {
    public static void main(String[] args) {
        IBMWFactory bmwx5Factory=new BMWX5Factory();
        IBMW ibmw = bmwx5Factory.produce();
        ibmw.setType();
    }
}

输出结果:

Connected to the target VM, address: '127.0.0.1:52651', transport: 'socket'
我生产BMWX5
我是宝马X5
Disconnected from the target VM, address: '127.0.0.1:52651', transport: 'socket'

Process finished with exit code 0


个人博客:http://www.whereta.com

© 著作权归作者所有

共有 人打赏支持
上一篇: 单例模式
下一篇: 工厂模式
清尘V
粉丝 41
博文 107
码字总数 47780
作品 0
青岛
程序员
私信 提问

暂无文章

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
15
3
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
5
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
5
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
5
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部