模式】工厂模式的作用?工厂模式有什么优点?"/>
【设计模式】工厂模式的作用?工厂模式有什么优点?
注:例子根据菜鸟案例进行更生动的改编,并加以自己的理解
创建一个People接口
public interface People {void makeMoney();
}
实现了People接口的大儿子类
public class FirstSon implements People {@Overridepublic void makeMoney() {System.out.println("大儿子在赚钱。。");}
}
同样实现了People接口的二儿子类
public class SecondSon implements People {@Overridepublic void makeMoney() {System.out.println("二儿子在赚钱。。");}
}
我们再创建一个工厂类:(作用:根据传入名字将子类对象返回)
public class Factory {public People setDetailPeople(String name){if(name == null){return null;}if(name.equalsIgnoreCase("first")){return new FirstSon();} else if(name.equalsIgnoreCase("second")){return new SecondSon();}return null;}
}
最后,我们使用这个工厂(使用子类对象 并调用子类中的方法)
public class UseFactory {public static void main(String[] args) {Factory factory = new Factory();
// People people = factory.setDetailPeople("first");People people = factory.setDetailPeople("second");people.makeMoney();}
}
输出结果为:二儿子在赚钱。。
如果我们把使用工厂的方法再修改一下:
public class UseFactory {public static void main(String[] args) {getSon("first").makeMoney();}public static People getSon(String name){Factory factory = new Factory();return factory.setDetailPeople(name);}
}
同理,我们不仅可以将name作为参数传入方法,这样对外只需传入一个名字即可,而不用每次都new对象;同理 如果需要 可以将name写入配置文件中,从配置文件中获取,达到灵活配置的目的;
其实,设计模式最主要的作用还是解耦合,做到新增功能不需要更改现有功能,不会出现新增功能将原有功能改崩的情况,推荐《大话设计模式》,看完第一章,就能体会解耦合的优点了。
更多推荐
【设计模式】工厂模式的作用?工厂模式有什么优点?
发布评论