文档章节

抽象工厂模式

清尘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
粉丝 42
博文 107
码字总数 47780
作品 0
青岛
程序员

暂无文章

【mpvue】三

使用了快1个月,陆续整理发现的坑 1、pageA-pageB-pageA-pageC 如果以这种顺序,大概理解成,列表进详情B, 返回列表进入详情C,那么进入详情C的时候,会因为缓存,先展现详情B的内容。解决方...

登天的感觉
6分钟前
0
0
在EXCEL指定SHEET页,指定文字位置,插入批注

Java操作EXCEL文件,利用POI,在EXCEL指定SHEET页中指定文字位置处插入批注 package excel; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.hssf......

zhaochaochao
7分钟前
0
0
一些网站。

UI schema,可以用json定义UI表单:https://jsonforms.io/examples/array

王坤charlie
14分钟前
0
0
百万连接,百亿吞吐量服务的JVM性能调优实战

转载占小狼博客 应用:shark-新美大移动端网络优化(每日接受移动端请求约150亿) 应用特点 : qps比较高,新生代增长飞快 用户的连接需要维持一段时间 单机需要维持海量连接,几十万的级别 以...

BakerZhu
17分钟前
0
0
iOS涂色涂鸦效果、Swift仿喜马拉雅FM、抽屉转场动画、拖拽头像、标签选择器等源码

iOS精选源码 LeeTagView 标签选择控件 为您的用户显示界面添加美观的加载视图 Swift4: 可拖动头像,增加物理属性 Swift版抽屉效果,自定义转场动画管理器 Swift 仿写喜马拉雅FM 可能是最好用...

sunnyaigd
17分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部