文档章节

抽象工厂模式

清尘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
青岛
程序员
私信 提问

暂无文章

以太坊Token通证或者代币的真正作用是什么?

上一篇文章以太坊(Ethereum)与以太(Ether)中,你应该很好地理解以太坊是如何构建以太坊应用程序网络的,这些应用程序需要一个名为Ether的加密货币来运行。现在是时候引入一个更深层的概念...

笔阁
5分钟前
0
0
PHP - 利用P3P实现跨域

P3P是什么 P3P Platform for Privacy Preferences, 是W3C公布的一项隐私保护推荐标准,以为用户提供隐私保护。 P3P标准的构想是:Web 站点的隐私策略应该告之访问者该站点所收集的信息类型、...

hansonwong
6分钟前
0
0
传统SSM框架之微信授权登陆

1、jdbc.properties (下面瞎写的值) WEIXIN_APP_ID=wx5438496a99c8d26acbWEIXIN_APP_SECRET=d070fjcwiefhwr38942dw 2、获取配置属性 /** * @Author:Mujiutian * @Description:微信参......

木九天
6分钟前
0
0
以太坊(Ethereum)与以太(Ether)为什么容易混淆?

客观的来说,以太坊与以太这两个概念很容易混淆。 当我们听到以太坊Ethereum这个词时,我们通常会将它与加密货币(比如比特币)联系起来。虽然这个定义并不完全错误。但重要的是要理解以太坊...

geek12345
8分钟前
0
0
ROS实操笔记四 msg 和srv

msg: msg files are simple text files that describe the fields of a ROS message. They are used to generate source code for messages in different languages. srv: an srv file descr......

placido
9分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部