随笔 - 40, 文章 - 0, 评论 - 20, 引用 - 0
数据加载中……

一个设计中使用比较多的模式

如果是在需求还没确定或者是在两个类实现相近功能时候,会大量使用下面的方式:
--抽象类,注意其中的newInstance方法的实现
package com.moonsoft.design;
public  abstract class Moon {
  public static Moon newInstance(String classStr){
    Class re;
    try {
      re =  Class.forName(classStr);
      return (Moon)re.newInstance();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    return null;
  }
  public abstract void  println();
}
--从Moon类派生出来的一个字类,提供println方法的一种实现方式
package com.moonsoft.design;
public class Moon1 extends Moon {
  public void println(){
    System.out.println("I am moon1");
  }
  public void myprintln(){
    System.out.println("I am moon1 myprintln");
  }
}
--从Moon类派生出来的另一个字类,提供println方法的另一种实现方式
package com.moonsoft.design;
public class Moon2 extends Moon {
   public void println(){
    System.out.println("I am moon2!");
  }
}
--调用
 Moon moon = Moon.newInstance("com.moonsoft.design.Moon1");
 moon.println();
 或
 Moon moon = Moon.newInstance("com.moonsoft.design.Moon2");
 moon.println();

posted on 2006-01-04 16:41 月亮 阅读(100) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: