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

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

如果是在需求还没确定或者是在两个类实现相近功能时候,会大量使用下面的方式:
--抽象类,注意其中的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();

你可能感兴趣的:(一个设计中使用比较多的模式)