工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。
如下是类的名称:
package com.fts.javatribe.factory;
/**
* @ClassName:Animal
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 8:10:32 PM
*/
public abstract class Animal {
public abstract void eat();
}
package com.fts.javatribe.factory;
/**
* @ClassName:AnimalFactory
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 8:13:57 PM
*/
public interface AnimalFactory {
public abstract Animal createAnimal();
}
package com.fts.javatribe.factory;
/**
* @ClassName:Cat
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 8:12:03 PM
*/
public class Cat extends Animal {
/* (non-Javadoc)
* @see com.fts.javatribe.factory.Animal#eat()
*/
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("猫吃鱼");
}
}
package com.fts.javatribe.factory;
/**
* @ClassName:CatFactory
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 8:16:09 PM
*/
public class CatFactory implements AnimalFactory {
/* (non-Javadoc)
* @see com.fts.javatribe.factory.AnimalFactory#createAnimal()
*/
public Animal createAnimal() {
// TODO Auto-generated method stub
return new Cat();
}
}
package com.fts.javatribe.factory;
/**
* @ClassName:Dog
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 8:12:32 PM
*/
public class Dog extends Animal {
/* (non-Javadoc)
* @see com.fts.javatribe.factory.Animal#eat()
*/
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("狗吃肉");
}
}
package com.fts.javatribe.factory;
/**
* @ClassName:DogFactory
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 8:15:26 PM
*/
public class DogFactory implements AnimalFactory {
/* (non-Javadoc)
* @see com.fts.javatribe.factory.AnimalFactory#createAnimal()
*/
public Animal createAnimal() {
// TODO Auto-generated method stub
return new Dog();
}
}
package com.fts.javatribe.factory;
/**
* @ClassName:Test
* @Description:TODO
* @author FTS
* @date Nov 2, 2014 8:16:38 PM
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
AnimalFactory af=new DogFactory();
Animal a=af.createAnimal();
a.eat();
}
}