- 浏览: 196995 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (139)
- 软件 (0)
- Pattern (6)
- CSDN导入 (19)
- Struts (3)
- [网站分类]1.网站首页原创 (27)
- [网站分类]6.转载区 (4)
- Hibernate (10)
- Error (8)
- [网站分类]2.Java新手区 (20)
- Java (8)
- [网站分类]4.其他技术区 (10)
- Web (1)
- C++ (2)
- Algorithm (4)
- Linux (2)
- Skill (1)
- Tech (2)
- Note (2)
- [网站分类]3.非技术区 (1)
- Database (1)
- Winty (7)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
最新评论
-
haohao-xuexi02:
很不错哦。
O'Reilly cos上传组件的使用(1/3) - 上传文件 -
yoin528:
useUnicode=true&charact ...
[原]向MySQL数据库插入Blob数据的问题 -
xiaoqing20:
下载来看看!呵呵
[原]Struts2类型转换 -
xiaoqing20:
[原]Struts2类型转换
[关键字]:java,design pattern,设计模式,《Java与模式》,Factory
[环境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com)
UML图:
代码:
/**
*工厂模式测试类
*@version 2009-4-3
*@author Winty(wintys@gmail.com)
*/
package pattern.factory;
public class Factory{
public static void main(String[] args){
Fruit fruit;
FruitGardener fruitGardener;
fruitGardener = new AppleGardener();
fruit = fruitGardener.factory();
fruit.plant();
fruit.harvest();
fruitGardener = new StrawberryGardener();
fruit = fruitGardener.factory();
fruit.plant();
fruit.harvest();
fruitGardener = new GrapeGardener();
fruit = fruitGardener.factory();
fruit.plant();
fruit.harvest();
}
}
/**
*抽象产品
*/
abstract class Fruit{
protected String name;
public abstract void plant();
public abstract void harvest();
}
/**
*具体产品(Apple)
*/
class Apple extends Fruit{
public Apple(){
name = "Apple";
}
@Override
public void plant(){
System.out.println(name + " plant");
}
@Override
public void harvest(){
System.out.println(name + " harvest");
}
}
/**
*具体产品(草莓)
*/
class Strawberry extends Fruit{
public Strawberry(){
name = "Strawberry";
}
@Override
public void plant(){
System.out.println(name + " plant");
}
@Override
public void harvest(){
System.out.println(name + " harvest");
}
}
/**
*具体产品(葡萄)
*/
class Grape extends Fruit{
public Grape(){
name = "Grape";
}
@Override
public void plant(){
System.out.println(name + " plant");
}
@Override
public void harvest(){
System.out.println(name + " harvest");
}
}
/**
*抽象工厂类
*/
abstract class FruitGardener{
public abstract Fruit factory();
}
/**
*具体Apple工厂
*/
class AppleGardener extends FruitGardener{
@Override
public Fruit factory(){
return new Apple();
}
}
/**
*具体草莓工厂
*/
class StrawberryGardener extends FruitGardener{
@Override
public Fruit factory(){
return new Strawberry();
}
}
/**
*具体葡萄工厂
*/
class GrapeGardener extends FruitGardener{
@Override
public Fruit factory(){
return new Grape();
}
}
*工厂模式测试类
*@version 2009-4-3
*@author Winty(wintys@gmail.com)
*/
package pattern.factory;
public class Factory{
public static void main(String[] args){
Fruit fruit;
FruitGardener fruitGardener;
fruitGardener = new AppleGardener();
fruit = fruitGardener.factory();
fruit.plant();
fruit.harvest();
fruitGardener = new StrawberryGardener();
fruit = fruitGardener.factory();
fruit.plant();
fruit.harvest();
fruitGardener = new GrapeGardener();
fruit = fruitGardener.factory();
fruit.plant();
fruit.harvest();
}
}
/**
*抽象产品
*/
abstract class Fruit{
protected String name;
public abstract void plant();
public abstract void harvest();
}
/**
*具体产品(Apple)
*/
class Apple extends Fruit{
public Apple(){
name = "Apple";
}
@Override
public void plant(){
System.out.println(name + " plant");
}
@Override
public void harvest(){
System.out.println(name + " harvest");
}
}
/**
*具体产品(草莓)
*/
class Strawberry extends Fruit{
public Strawberry(){
name = "Strawberry";
}
@Override
public void plant(){
System.out.println(name + " plant");
}
@Override
public void harvest(){
System.out.println(name + " harvest");
}
}
/**
*具体产品(葡萄)
*/
class Grape extends Fruit{
public Grape(){
name = "Grape";
}
@Override
public void plant(){
System.out.println(name + " plant");
}
@Override
public void harvest(){
System.out.println(name + " harvest");
}
}
/**
*抽象工厂类
*/
abstract class FruitGardener{
public abstract Fruit factory();
}
/**
*具体Apple工厂
*/
class AppleGardener extends FruitGardener{
@Override
public Fruit factory(){
return new Apple();
}
}
/**
*具体草莓工厂
*/
class StrawberryGardener extends FruitGardener{
@Override
public Fruit factory(){
return new Strawberry();
}
}
/**
*具体葡萄工厂
*/
class GrapeGardener extends FruitGardener{
@Override
public Fruit factory(){
return new Grape();
}
}
发表评论
-
[原]导出CodeHelp的数据
2009-03-16 17:05 803搬到blogjava总得发点原创的东西吧。 Code ... -
[原]使用Ant实现zip压缩解压功能
2009-03-19 13:17 1668[关键词]:ant,zip,unzip,Apache,压缩,解 ... -
[原]EL函数的使用
2009-04-03 21:29 1069[标题]:EL函数的使用 [时 ... -
[原]对Class.getMethod()的调用未经检查
2009-04-05 15:52 2317[标题]:对Class.getMethod()的调用未经检查 ... -
[原]JNI简单示例
2009-04-05 21:33 1000[标题]:JNI简单示例 [时 ... -
[原]简单工厂模式
2009-04-14 12:26 718[关键字]:java,设计模式,简单工厂,《java与模式》 ... -
[原]抽象工厂模式
2009-04-14 19:25 716[关键字]:java,design pattern,设计模式, ... -
[原]方法返回值为数组的另一种表示方法
2009-04-25 22:28 932[时间]:2009-04-25 今天看到JDK的源代码 ... -
[原]SAX使用示例
2009-04-26 19:18 2015[标题]:[原]SAX使用示例 [时间]:2009-4-25 ... -
[原]责任链模式
2009-05-09 16:47 692[关键字]:java,design pattern,设计模式, ... -
[原]状态模式
2009-05-18 23:03 743[关键字]:java,design pattern,设计模式, ... -
[原]策略模式
2009-05-21 22:21 659[关键字]:java,design pattern,设计模式, ... -
[原]VC实现重启路由器
2009-05-29 23:36 2040[标题]:[原]VC实现重启路 ... -
[原]远程登录Windows Server 2003的当前会话
2009-06-01 11:19 2030[标题]:远程登录Windows Server 2003的当前 ... -
[原]Tomcat crossContext
2009-06-01 12:27 6019[标题]:Tomcat crossContext [时间]:2 ... -
[原]装饰模式1
2009-06-07 22:33 673[关键字]:java,design pattern,设计模式, ... -
[原]装饰模式3-Grep
2009-06-07 22:42 655[关键字]:java,design pattern,设计模式, ... -
[原]合成模式-透明的
2009-06-08 22:23 727[关键字]:java,design pattern,设计模式, ... -
[原]合成模式-安全的
2009-06-08 22:27 798[关键字]:java,design pattern,设计模式, ... -
[原]模板方法模式
2009-06-15 17:05 636[关键字]:java,design pattern,设计模式, ...
相关推荐
NULL 博文链接:https://jacky-dai.iteye.com/blog/2296369
设计模式-简单工厂技术的原理解及其相关实现代码。
[浪曦原创]JAVA设计模式 第2讲 单态模式和简单工厂模式(jzkangta).rar
1)程序功能:用简单工厂模式实现计算器功能,采用PHP编写。 2)程序详解地址:http://blog.csdn.net/clevercode/article/details/45692995。 3)原创作品,出自"CleverCode的博客",分类为《设计模式之PHP项目应用...
本例是一个抽象工厂的实例程序,纯粹的个人完全原创,里面有完整的注释及说明。非常适合于新手及对设计模式有困惑的。实例简单但清晰的阐述了抽象工厂模式的妙处。
抽象工厂模式 原型模式 建造者模式 单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为模式) 解释器模式 模板方法模式 行为模式(对象行为模式) 策略模式 ...
[浪曦原创]JAVA设计模式 第4讲 抽象工厂(jzkangta)
三是推进供应链协同化,基于原材料采购和配送需求,将CPS系统拓展至供应商和物流企业,横向集成供应商和物料配送协同资源和网络,实现外部原材料供应和内部生产配送的系统化、流程化,提高工厂内外供应链运行效率;...
现在该设计模式粉墨登场了,这种根据不同情况创建不同类型的方式,工厂模式是最拿手的。先看看我们 的工厂需要生产哪些产品呢?虽然这里有两种不同类型的媒体AudioMedia 和 VideoMedia(以后可能更 多),但它们同时...
英文原书名: Design Patterns:Elements of Reusable Object-Oriented software 作者: Erich Gamma 等 译者: 李英军 马晓星 蔡敏 刘建中 书号: 7-111-07575-7 页码: 254 定价: ¥35.00 会员价: ¥31.50 币值: 315 ...
主要包括Ruby概述、使用模板方法变换算法、使用策略替换算法、通过观察器保持协调、通过迭代器遍历集合、使用命令模式完成任务、使用适配器填补空隙、使用装饰器改善对象、单例、使用工厂模式挑选正确的类、通过生成...
料,指制造产品所使⽤的原材料;法,指制造产品所使⽤的⽅ 法;环,指产品制造过程中所处的环境。⽽智能⽣产就是以智能⼯⼚为核⼼,将⼈、机、法、 料、环连接起来,多维度融合的过程。 在智能⼯⼚的体系架构中,...
Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消 工厂模式 费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如 何创建及如何向客户端...
原书名: Design Patterns:Elements of Reusable Object-Oriented software 原出版社: Addison Wesley/Pearson 作者: (美)Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides [作译者介绍] 译者: 李...
数据采集器采用了三层架构和工厂模式,因为在开发中使用到了SQLSERVER和MYSQL。原创源代码。
工厂系列模式的优缺点: 让用户的代码和某个特定类的子类的代码解耦 用户不必知道它所使用的对象是怎样创建的,只需知道该对象有哪些方法 抽象工厂模式可以为用户创建一系列相关的对象,使用户和创建这些对象的类脱...
4工厂模式烘烤OO的精华 5单件模式独一无二的对象 6命令模式封装调用 7适配器模式与外观模式随遇模式 8模板方法模式封装算法 9选代器与组合模式管理良好的集合 10状态模式事物的状态 ...
库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(CRM): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会...