文档章节

工厂模式

清尘V
 清尘V
发布于 2016/04/15 09:09
字数 214
阅读 17
收藏 0

定义接口:

package com.whereta.factory;

/**
 * Vincent 创建于 2016/4/15.
 */
public interface IPerson {

    void say();

}

定义实现类:

package com.whereta.factory;

/**
 * Vincent 创建于 2016/4/15.
 */
public class Man implements IPerson {
    public void say() {
        System.out.println("我是男人");
    }
}
package com.whereta.factory;

/**
 * Vincent 创建于 2016/4/15.
 */
public class Woman implements IPerson {
    public void say() {
        System.out.println("我是女人");
    }
}

定义工厂类:

package com.whereta.factory;

/**
 * Vincent 创建于 2016/4/15.
 */
public class PersonFactory {
    public static IPerson getMan(){
        return new Man();
    }

    public static IPerson getWoman(){
        return new Woman();
    }
}

测试:

package com.whereta.factory;

/**
 * Vincent 创建于 2016/4/15.
 * 工厂模式适应于实现了同一个接口的类的创建
 */
public class Main {
    public static void main(String[] args) {

        IPerson man = PersonFactory.getMan();
        man.say();
        IPerson woman = PersonFactory.getWoman();
        woman.say();

    }
}

输出结果:

Connected to the target VM, address: '127.0.0.1:51565', transport: 'socket'
我是男人
我是女人
Disconnected from the target VM, address: '127.0.0.1:51565', transport: 'socket'

Process finished with exit code 0

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

© 著作权归作者所有

共有 人打赏支持
清尘V
粉丝 41
博文 107
码字总数 47780
作品 0
青岛
程序员
私信 提问

暂无文章

CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
4
0
windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
3
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
4
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
6
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部