- 浏览: 197003 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (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,设计模式,简单工厂,《java与模式》
[环境]:StarUML + JDK6
[作者]:Winty (wintys@gmail.com)
简单工厂模式:
代码:
/**
*简单工厂测试
*@version 2009-3-25
*@author Winty(wintys@gmail.com)
*/
package pattern.simplefactory;
public class SimpleFactory{
public static void main(String[] args){
Shape shape;
try{
shape = ArtTracer.factory("circle");
shape.draw();
shape.erase();
shape = ArtTracer.factory("square");
shape.draw();
shape.erase();
shape = ArtTracer.factory("triangle");
shape.draw();
shape.erase();
//未知图形类型
shape = ArtTracer.factory("unknownShape");
shape.draw();
shape.erase();
}catch(BadShapeException e){
System.out.println(e.getMessage());
}
}
}
/**
*简单工厂:绘图员
*/
class ArtTracer{
public static Shape factory(String type)throws BadShapeException{
if(type.equalsIgnoreCase("Circle")){
return new Circle();
}else if(type.equalsIgnoreCase("Square")){
return new Square();
}else if(type.equalsIgnoreCase("Triangle")){
return new Triangle();
}else{
throw new BadShapeException(type);
}
}
}
/**
*抽象产品
*/
abstract class Shape{
public abstract void draw();
public abstract void erase();
}
/**
*具体产品
*/
class Circle extends Shape{
public void draw(){
System.out.println("Circle draw");
}
public void erase(){
System.out.println("Circle erase");
}
}
/**
*具体产品
*/
class Square extends Shape{
public void draw(){
System.out.println("Square draw");
}
public void erase(){
System.out.println("Square erase");
}
}
/**
*具体产品
*/
class Triangle extends Shape{
public void draw(){
System.out.println("Triangle draw");
}
public void erase(){
System.out.println("Triangle erase");
}
}
/**
*辅助类:当输入的类为不支持的图形时,抛出异常
*/
class BadShapeException extends Exception{
public BadShapeException(String type){
super(type + ":不支持的图形");
}
}
*简单工厂测试
*@version 2009-3-25
*@author Winty(wintys@gmail.com)
*/
package pattern.simplefactory;
public class SimpleFactory{
public static void main(String[] args){
Shape shape;
try{
shape = ArtTracer.factory("circle");
shape.draw();
shape.erase();
shape = ArtTracer.factory("square");
shape.draw();
shape.erase();
shape = ArtTracer.factory("triangle");
shape.draw();
shape.erase();
//未知图形类型
shape = ArtTracer.factory("unknownShape");
shape.draw();
shape.erase();
}catch(BadShapeException e){
System.out.println(e.getMessage());
}
}
}
/**
*简单工厂:绘图员
*/
class ArtTracer{
public static Shape factory(String type)throws BadShapeException{
if(type.equalsIgnoreCase("Circle")){
return new Circle();
}else if(type.equalsIgnoreCase("Square")){
return new Square();
}else if(type.equalsIgnoreCase("Triangle")){
return new Triangle();
}else{
throw new BadShapeException(type);
}
}
}
/**
*抽象产品
*/
abstract class Shape{
public abstract void draw();
public abstract void erase();
}
/**
*具体产品
*/
class Circle extends Shape{
public void draw(){
System.out.println("Circle draw");
}
public void erase(){
System.out.println("Circle erase");
}
}
/**
*具体产品
*/
class Square extends Shape{
public void draw(){
System.out.println("Square draw");
}
public void erase(){
System.out.println("Square erase");
}
}
/**
*具体产品
*/
class Triangle extends Shape{
public void draw(){
System.out.println("Triangle draw");
}
public void erase(){
System.out.println("Triangle erase");
}
}
/**
*辅助类:当输入的类为不支持的图形时,抛出异常
*/
class BadShapeException extends Exception{
public BadShapeException(String type){
super(type + ":不支持的图形");
}
}
发表评论
-
[原]导出CodeHelp的数据
2009-03-16 17:05 803搬到blogjava总得发点原创的东西吧。 Code ... -
[原]使用Ant实现zip压缩解压功能
2009-03-19 13:17 1669[关键词]:ant,zip,unzip,Apache,压缩,解 ... -
[原]EL函数的使用
2009-04-03 21:29 1069[标题]:EL函数的使用 [时 ... -
[原]对Class.getMethod()的调用未经检查
2009-04-05 15:52 2318[标题]:对Class.getMethod()的调用未经检查 ... -
[原]JNI简单示例
2009-04-05 21:33 1000[标题]:JNI简单示例 [时 ... -
[原]工厂模式
2009-04-14 12:32 692[关键字]:java,design pattern,设计模式, ... -
[原]抽象工厂模式
2009-04-14 19:25 717[关键字]:java,design pattern,设计模式, ... -
[原]方法返回值为数组的另一种表示方法
2009-04-25 22:28 933[时间]: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 674[关键字]: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项目应用...
本例是一个抽象工厂的实例程序,纯粹的个人完全原创,里面有完整的注释及说明。非常适合于新手及对设计模式有困惑的。实例简单但清晰的阐述了抽象工厂模式的妙处。
抽象工厂模式 原型模式 建造者模式 单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为模式) 解释器模式 模板方法模式 行为模式(对象行为模式) 策略模式 ...
现在该设计模式粉墨登场了,这种根据不同情况创建不同类型的方式,工厂模式是最拿手的。先看看我们 的工厂需要生产哪些产品呢?虽然这里有两种不同类型的媒体AudioMedia 和 VideoMedia(以后可能更 多),但它们同时...
Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消 工厂模式 费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如 何创建及如何向客户端...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累... 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。
阅读设计模式之禅以及大话设计模式,写个demo加深印象,可以参考作者文章原 《简单工厂模式、工厂方法模式和抽象工厂模式》https://blog.csdn.net/u013795543/article/details/100173672
4.0 引入简单工厂,结合策略模式对游戏优化并加入动态加速功能,将原GUI+绘蛇变更为,自制Control控件, 关卡不变(解决了双缓冲无法解决屏幕闪烁问题) 5.0 美化游戏,应用分层理念封装各实体类 制作人: 董...
半扒巾丫笋咱偷凸勉怠艳揍驮粪匡芬皋菱材丫告儡慌父委昂原该1 智能工厂信息化架构及MES系统整体规划 企业信息化架构 基于制造企业的三个管理平台规划,其信息化系统整体架构规划如下: 基于整体信息化架构规划,实现...
公司简易通讯录程序原创软件,工厂、公司、企业通讯录软件,方便办公人员随时查询内部人员联系方式。 公司简易通讯录程序使用方法: 在公司一台电脑上安装SQL2005,设置IP地址为192.168.0.200,sql验证方式为sql...
简单工厂模式:(后面可以用反射优化代码) 优点: 1.将生产和消费分离(解耦),即创建对象和使用对象的功能分离,便于管理 缺点: 1.扩展性弱,如果添加了新的产品,则需要修改工厂方法 ...
ASP.NET 2.0 异步页面原理浅析 [1] [原] 自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格...
以学渣的姿态来学习学霸的知识,我不善搞深奥的东西,但喜欢将深奥的东西变成简单的东西,我深信复杂度守恒定律,我也相信讲出来的东西是为了让大家能听懂而不是自己秀知识储备而已。听懂掌声。 软件设计模式背景 当...
R2通过代理connection对象和工厂模式实现了不改变原jdbc调用方式的前提下的jdbc数据库连接池。结构简单,功能完善,高可配置,充分应用了jdk1.6的同步包特性,提高了并发效率,并能够完美应用于非web项目和web项目,...
毕业设计 个人博客系统源码 ...最后探讨了各种模式的技术,如简单工厂模式,包括工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式,以及外观模式,包括适配器模式。本书还讲解了几种适配器、代