定义接口:
package com.whereta.factory;/** * Vincent 创建于 2016/4/15. */public interface IPerson { void say();}
定义实现类:
package com.whereta.factory;/** * Vincent 创建于 2016/4/15. */public class Man implements IPerson { public void say() { System.out.println("我是男人"); }}
package com.whereta.factory;/** * Vincent 创建于 2016/4/15. */public class Woman implements IPerson { public void say() { System.out.println("我是女人"); }}
定义工厂类:
package com.whereta.factory;/** * Vincent 创建于 2016/4/15. */public class PersonFactory { public static IPerson getMan(){ return new Man(); } public static IPerson getWoman(){ return new Woman(); }}
测试:
package com.whereta.factory;/** * Vincent 创建于 2016/4/15. * 工厂模式适应于实现了同一个接口的类的创建 */public class Main { public static void main(String[] args) { IPerson man = PersonFactory.getMan(); man.say(); IPerson woman = PersonFactory.getWoman(); woman.say(); }}
输出结果:
Connected to the target VM, address: '127.0.0.1:51565', transport: 'socket'我是男人我是女人Disconnected from the target VM, address: '127.0.0.1:51565', transport: 'socket'Process finished with exit code 0
个人博客: