Java中的简单工厂模式

Java中的简单工厂模式

ID:40297161

大小:466.00 KB

页数:9页

时间:2019-07-30

Java中的简单工厂模式_第1页
Java中的简单工厂模式_第2页
Java中的简单工厂模式_第3页
Java中的简单工厂模式_第4页
Java中的简单工厂模式_第5页
资源描述:

《Java中的简单工厂模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java中的简单工厂模式举两个例子以快速明白Java中的简单工厂模式:女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人。”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面。女娲造人,这就是简单工厂模式的应用。  首先,在这个造人的思想里面,有几个重要的角色:女娲本身、抽象的人的概念和女娲所造出的一个个具体的人。  1.)女娲是一个工厂类,也就是简单工厂模式的核心角色。        2.)具休的一个个的人,包括张三,李四等。这些人便是简单工厂模式里面的具体产品角色  3.)抽象的人是最早只存在于女娲的头脑里的一个想法,女娲按照这个想法造出的一个个具

2、体的人,便都符合这个抽象的人的定义。换言之,这个抽象的想法规定了所有具体的人必须都有的接口(特征或者功能)   其UML类图出下所示:    理解了上面的这些东西,再来理解下面的例子,对照理解,相信看完这篇文章,便对java简单工厂模式有一个很好的理解:有一个农场公司,专门向市场销售各类水果,在这个系统里需要描述下列水果:     葡萄 Grape     草莓 Stuawberry     苹果 Apple水果与其他植物不同,最终可以采摘食用,那么一个自然的做法是建立一个各种水果都适用的接口,以便与其他农场里的植物区分开来,此时,则是为水果类声明了一个接口,表现在代码上: 1pu

3、blic interface Fruit{ 2    //生长 3     void grow(); 4     //收获 5     void harvest(); 6     //种植 7     void plant(); 8} 910水果接口规定出所有的水果必须实现的接口,包括任何水果类必须具备的方法plant(),grow(),和harvest();Apple类是水果类的一种,因此它实现了水果接口所声明的所有方法。另处,由于苹果是多年生植物,因此多出一个treeAge性质,描述苹果的树龄。代码如下所示:package fac;public class Apple impl

4、ements Fruit{//通过implements实现接口Fruit    private int treeAge;        public void grow(){        log("Apple is growing");    }        public void harvest(){        log("Apple has been harvested");    }        public void plant(){        log("Apple ha been planted");    }        public static voi

5、d log(String msg){        System.out.println(msg);    }        public int getTreeAge(){        return treeAge;    }        public void setTreeAge(int treeAge){        this.treeAge=treeAge;    }}同理,葡萄 Grape:package fac;public class Grape implements Fruit{    private boolean seedless;    public 

6、void grow(){        log("Grape is growing.");    }        public void harvest(){        log("Grape has been harvested");    }        public void plant(){        log("Grape ha been planted");    }        public static void log(String msg){        System.out.println(msg);    }    public boolean 

7、isSeedless() {        return seedless;    }    public void setSeedless(boolean seedless) {        this.seedless = seedless;    }    }草莓 Stuawberry:package fac;public class Strawberry implements Fruit{    public void grow(){        log("

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。