| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |

abstract class ShapeFactory {网管网www_bitscn_com
protected abstract Shape create(); 网管bitscn_com
private static Map factories = new HashMap(); 网管u家bitscn.net
public static void 网管有家www.bitscn.net
addFactory(String id, ShapeFactory f) {网管u家www.bitscn.net
factories.put(id, f); 网管bitscn_com } 网管u家bitscn.net
// A Template Method: 网管u家u.bitsCN.com
public static final 网管有家www.bitscn.net
Shape createShape(String id) { 中国网管联盟bitsCN.com if(!factories.containsKey(id)) {网管网www.bitscn.com
try {网管有家bitscn.net
// Load dynamically 网管u家u.bitsCN.com
Class.forName("c05.shapefact2." + id); 网管u家u.bitsCN.com
} catch(ClassNotFoundException e) { 网管u家bitscn.net throw new RuntimeException(网管u家bitscn.net
"Bad shape creation: " + id); 网管有家www.bitscn.net } 网管论坛bbs_bitsCN_com // See if it was put in:网管u家u.bitscn@com
if(!factories.containsKey(id))网管联盟bitsCN_com
throw new RuntimeException(网管u家u.bitsCN.com
"Bad shape creation: " + id); 中国网管联盟bitsCN.com } 网管u家u.bitsCN.com return 网管bitscn_com
((ShapeFactory)factories.get(id)).create();网管u家bitscn.net
} 中国网管论坛bbs.bitsCN.com
class Circle implements Shape { 网管u家www.bitscn.net
private Circle() {}网管下载dl.bitscn.com
public void draw() {中国网管论坛bbs.bitsCN.com
System.out.println("Circle.draw");网管联盟bitsCN_com
}网管u家u.bitscn@com
public void erase() {网管朋友网www_bitscn_net
System.out.println("Circle.erase"); 网管u家u.bitscn@com
}网管u家u.bitscn@com
private static class Factory 网管朋友网www_bitscn_net
extends ShapeFactory {网管u家www.bitscn.net
protected Shape create() {网管朋友网www_bitscn_net
return new Circle(); 网管u家u.bitscn@com } 网管朋友网www_bitscn_net
} 网管u家www.bitscn.net static { 网管网www.bitscn.com ShapeFactory.addFactory( 网管u家bitscn.net
"Circle", new Factory());网管u家bitscn.net
} 网管联盟bitsCN@com } 网管u家u.bitscn@com
|
0
|
评论加载中…