简单工厂1
public class SimpleFactory {
public static void main(String[] args) {
factory.getInstance(factory.XINGWEI_CHI).xingWei();;
}
}
interface Person{
public void xingWei();
}
class Chi implements Person{
@Override
public void xingWei() {
System.out.println("chifan");
}
}
class Sleep implements Person{
@Override
public void xingWei() {
System.out.println("sleep~~");
}
}
class Las implements Person{
@Override
public void xingWei() {
System.out.println("las...");
}
}
class factory{
public static final int XINGWEI_CHI = 1;
public static final int XINGWEI_SLEEP=2;
public static final int XINGWEI_LAS=3;
public static Person getInstance(int dongZuo){
if(XINGWEI_CHI==dongZuo){
return new Chi();
}else if(XINGWEI_SLEEP==dongZuo){
return new Sleep();
}else{
return new Las();
}
}
}
简单工厂加反射
public class SimpleAndReflect {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
factory.getInstance(Chi.class).xingWei();;
}
}
interface Person{
public void xingWei();
}
class Chi implements Person{
@Override
public void xingWei() {
System.out.println("chifan");
}
}
class Sleep implements Person{
@Override
public void xingWei() {
System.out.println("sleep~~");
}
}
class Las implements Person{
@Override
public void xingWei() {
System.out.println("las...");
}
}
class factory{
public static <T extends Person> T getInstance(Class<T> clz) throws InstantiationException, IllegalAccessException, ClassNotFoundException{
T result=(T) Class.forName(clz.getName()).newInstance();
return result;
}
}
工厂方法
public class FactoryMethod {
public static void main(String[] args) {
Person p = (Person)factory.getChiInstance();
p.xingWei();
}
}
interface Person{
public void xingWei();
}
class Chi implements Person{
@Override
public void xingWei() {
System.out.println("chifan");
}
}
class Sleep implements Person{
@Override
public void xingWei() {
System.out.println("sleep~~");
}
}
class Las implements Person{
@Override
public void xingWei() {
System.out.println("las...");
}
}
class factory{
public static Object getChiInstance(){
return new Chi();
}
public static Object getSleepInstance(){
return new Sleep();
}
}
抽象工厂
public class ChouXiang {
public static void main(String[] args) {
Person pf = (Person)new ChiFactory().create();
pf.xingWei();
}
}
interface Person{
public void xingWei();
}
class Chi implements Person{
@Override
public void xingWei() {
System.out.println("chifan");
}
}
class Sleep implements Person{
@Override
public void xingWei() {
System.out.println("sleep~~");
}
}
class Las implements Person{
@Override
public void xingWei() {
System.out.println("las...");
}
}
interface PersonFactory{
public Object create();
}
class ChiFactory implements PersonFactory{
@Override
public Object create() {
return new Chi();
}
}
class PaoFactory implements PersonFactory{
@Override
public Object create() {
return new Sleep();
}
}