原型模式调用(具体代码在jdon网站设计模式原型模式):
AbstractSpoon spoon = new SoupSpoon(); AbstractSpoon spoon2 = (AbstractSpoon) spoon.clone();
System.out.println(spoon2.getSpoonName());
原型模式要先new一个对象出来,再利用这个对象"生出"一个自己的克隆。 这种创建对象方式怎么看都有一段代码是多余的,给我感觉挺无聊的。
结合工厂模式后的调用:
String className = "com.patterns.newprototype.SoupSpoon";
AbstractSpoon spoon = SoupSpoonFactory.getSpoon(className); SpoonInterface spoon2 = (SpoonInterface) spoon.clone();
System.out.println(spoon2.getString());
//--------------------------------------------------------- public interface SpoonInterface {
public String getString(); } //--------------------------------------------------------- public class SoupSpoonFactory {
public static AbstractSpoon getSpoon(String className) { AbstractSpoon spoon = null; try { spoon = (AbstractSpoon) Class.forName(className).newInstance(); } catch(Exception er) { } return spoon; } }
public class SoupSpoon extends AbstractSpoon implements SpoonInterface {
public SoupSpoon() { setSpoonName("中文的SoupSpoon!"); } public String getString() { return "打印SoupSpoon"; } }
第二种:这么写主要是因为后面的看上去较好看,但感觉SoupSpoon之类的子类用了继承和接口实现;设计上可能有些幼稚;又好像在偶合性方面差了点。
第一种:似乎在应用中也不知道他有什么好处,有懂的道友指教一下。模式刚入门没什么经验.
[该贴被X.Underset于2008-03-15 01:21修改过]
|
|