工厂模式
interface Human{ public void eat(); public void sleep(); public void beat();}// 创建实现类 Maleclass Male implements Human{ public void eat(){ System.out.println("Male can eat."); } public void sleep(){ System.out.println("Male can sleep."); } public void beat(){ System.out.println("Male can beat."); }} //创建实现类 Femaleclass Female implements Human{ public void eat(){ System.out.println("Female can eat."); } public void sleep(){ System.out.println("Female can sleep."); } public void beat(){ System.out.println("Female can beat."); }} // 创建普通工厂类class HumanFactory{ public Human createHuman(String gender){ if( gender.equals("male") ){ return new Male(); }else if( gender.equals("female")){ return new Female(); }else { System.out.println("请输入正确的类型!"); return null; } }}// 工厂测试类public class FactoryTest { public static void main(String[] args){ HumanFactory factory = new HumanFactory(); Human male = factory.createHuman("male"); male.eat(); male.sleep(); male.beat(); }}
多个工厂模式
// 多个工厂方法public class HumanFactory{ public Male createMale() { return new Male(); } public Female createFemale() { return new Female(); }}// 工厂测试类public class FactoryTest { public static void main(String[] args){ HumanFactory factory = new HumanFactory(); Human male = factory.createMale(); male.eat(); male.sleep(); male.beat(); }}
静态工厂模式
// 多个工厂方法public class HumanFactory{ public static Male createMale() { return new Male(); } public static Female createFemale() { return new Female(); }}// 工厂测试类public class FactoryTest { public static void main(String[] args){ Human male = HumanFactory.createMale(); male.eat(); male.sleep(); male.beat(); }}
工厂模式应用
java.util.Calendar - getInstance()java.util.Calendar - getInstance(TimeZone zone)java.util.Calendar - getInstance(Locale aLocale)java.util.Calendar - getInstance(TimeZone zone, Locale aLocale)java.text.NumberFormat - getInstance()java.text.NumberFormat - getInstance(Locale inLocale)