易截截图软件、单文件、免安装、纯绿色、仅160KB

Java中的简单工厂模式

 Java中的简单工厂模式
      举两个例子以快速明白Java中的简单工厂模式:
女娲抟土造人
话说:“天地开辟,未有人民,女娲抟土为人。”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面。
女娲造人,这就是简单工厂模式的应用。
  首先,在这个造人的思想里面,有几个重要的角色:女娲本身、抽象的人的概念和女娲所造出的一个个具体的人。
  1.)女娲是一个工厂类,也就是简单工厂模式的核心角色。
        2.)具休的一个个的人,包括张三,李四等。这些人便是简单工厂模式里面的具体产品角色
  3.)抽象的人是最早只存在于女娲的头脑里的一个想法,女娲按照这个想法造出的一个个具体的人,便都符合这个抽象的人的定义。换言之,这个抽象的想法规定了所有具体的人必须都有的接口(特征或者功能)
   其UML类图出下所示:
注意:女娲与张三,李四属于创建依赖关系,上图箭头应该是虚线(实现代表关联关系)。而张三,李四与人属于实现关系,上图三角形头的箭头也应该是虚线(实线代表继承关系)。
理解了上面的这些东西,再来理解下面的例子,对照理解,相信看完这篇文章,便对java简单工厂模式有一个很好的理解:
有一个农场公司,专门向市场销售各类水果,在这个系统里需要描述下列水果:
     葡萄 Grape
     草莓 Strawberry
     苹果 Apple
水果与其他植物不同,最终可以采摘食用,那么一个自然的做法是建立一个各种水果都适用的接口,以便与其他农场里的植物区分开来,
此时,则是为水果类声明了一个接口,表现在代码上:
/**
* 文件名:Fruit.java
*
* 版本信息:
* 日期:2009-10-31
* Copyright xxx Corporation 2009
* 版权所有
*
*/
package fac;
/**
*
* 项目名称:SimpleFactory
* 类名称:Fruit
* 类描述:为所有水果类声明的一个接口
* 创建人:Defonds
* 创建时间:2009-10-31 下午05:37:29
* 修改人:Defonds
* 修改时间:2009-10-31 下午05:37:29
* 修改备注:
* @version
*
*/
public interface Fruit
{
//种植
public void plant();

//生长
public void grow();

//收获
public void harvest();
}
水果接口规定出所有的水果必须实现的接口,包括任何水果类必须具备的方法plant(),grow(),和h


相关文档:

Java中对文件的各种操作

//java.io
---------------------------------------------------------------
 
/**
* Title: 文件的各种操作
* Copyright: Copyright (c) 2004
* Company: 广东 有限公司
* @author 网络信息部 庆丰
* @version 1.0
*/
 
p ......

[转]Java连接SQLite db数据库文件

Java连接SQLite数据库详解 下载SQLite数据库的JDBC 这里给出一个中文站点的URL: 设置环境变量: 将下载到的包解压后得到jar包 sqlitejdbc-v033-nested.jar 放到%JAVA_HOME%\lib 下,并且将其添加到classpath系统环境变量中,我的classpath系统环境变量现在为: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\li ......

几种常见的数据结构的JAVA实现

树是一个递归的数据结构,一棵树上的所有节点都可以被看成是一棵树,只不过除根节点外其他节点都比总树的规模小点而已。树的节点有三种:根节点(没有父亲节点),叶子节点(没有孩子节点),一般节点(既有父亲节点,也有孩子节点)。具体对结构的分析,几乎所有写数据结构的书中都有提到。
这棵树的实现花了好几天时间, ......

JAVA学习笔记③

    Alan Kay曾经总结了Smalltalk的五项特征,这些特征是Java所依赖的基础之一,当然这些特征也代表了的面向对象的编程的方法。
                           &n ......

java中加密算法的应用一:DES

第一种DES加密算法
import java.security.Key;
 
import java.security.SecureRandom;
 
import javax.crypto.Cipher;
 
import javax.crypto.KeyGenerator;
 
 
/**

*

* 使用DES加密与解密,可对byte[],String类型进行加密与解密 密文可使用 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号