文档章节

工厂模式

清尘V
 清尘V
发布于 2016/04/15 09:09
字数 214
阅读 16
收藏 0
点赞 1
评论 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
粉丝 43
博文 107
码字总数 47780
作品 0
青岛
程序员

暂无文章

Postfix命令行说明

Postfix tips and Troubleshooting Commands Here's a list of stuff I user everyday and other email admins will also be using, Let me know if I missed anything List/Print current m......

mingle
12分钟前
0
0
是时候使用Helm了:Helm, Kubernetes的包管理工具

目前我们的一个产品共有4套环境:dev环境、test环境、staging环境、production环境。 其中dev, test, staging环境在一个Kubernetes集群上以不同namespace部署,production环境部署在另一个Kub...

xiaomin0322
19分钟前
0
0
常见的redis的序列化方式

概括 一般redis的序列化方式主要有:字符串序列化、json序列化、xml序列化、jdk序列化,具体可查阅org.springframework.data.redis.serializer.RedisSerializer 的实现类,其中对于json序列化...

菜蚜
33分钟前
1
0
Linux bash入门

一、Linux Bash介绍 Bash是UNIX系统下的一个命令解析器,全称为Bourne-Again Shell是一个为GNU开源项目编写的Unix shell。bash功能强大,尤其是在处理自动循环或者耗时大的任务方面可以节省大...

老韭菜
37分钟前
0
0
Xamarin Essentials教程检查网络连通性Connectivity

Xamarin Essentials教程检查网络连通性Connectivity 网络连通性其实就是检测当前设备有没有连接网络。网络连通性在很多与网络相关的应用程序中会使用到。在Xamarin中如果要使用网络连通性,需...

大学霸
42分钟前
0
0
Redis的安装及创建节点、部署群集

Redis简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis有着更为复杂的数据结构并且提供对他们的原子性操...

Java填坑之路
44分钟前
2
0
什么是Redux,为什么使用Redux,怎么使用Redux

1、什么是Redux 官方解释:Redux is a predictable state container for JavaScript apps. 意思就是Redux是js应用的 一种可预测的状态容器 2、为什么使用Redux 下面的图是不使用Redux和使用R...

kimyeongnam
47分钟前
0
0
与女儿谈商业模式之6:我要办电力公司

分类:与女儿谈商业模式 2007-10-11 10:12阅读(10149)评论(24) 与女儿谈商业模式之6:我要办电力公司 陈志武 刊登于2007年8月《创富志》 美国式商业模式的最大诀窍其实很简单,专门找人们每天...

祖冲之
48分钟前
1
0
Java-Map的遍历

package collection;/** * 遍历map的4种方法 */import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class ErgodicMap {public static void main(S......

游人未归
58分钟前
1
0
RadioGroup 自动换行且保留点击事件

相信用过RadioGroup的同学都踩过很多坑,其中之一就是这个控件设计的不是很合理,不能设置里面的radiobutton的 排列方式(几行几列),导致我们开发的时候要调整里面的布局很是麻烦。 另外一...

丁佳辉
59分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部