【设计模式】工厂模式的作用?工厂模式有什么优点?

编程入门 行业动态 更新时间:2024-10-27 14:18:31

【设计<a href=https://www.elefans.com/category/jswz/34/1771241.html style=模式】工厂模式的作用?工厂模式有什么优点?"/>

【设计模式】工厂模式的作用?工厂模式有什么优点?

注:例子根据菜鸟案例进行更生动的改编,并加以自己的理解



创建一个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写入配置文件中,从配置文件中获取,达到灵活配置的目的;

其实,设计模式最主要的作用还是解耦合,做到新增功能不需要更改现有功能,不会出现新增功能将原有功能改崩的情况,推荐《大话设计模式》,看完第一章,就能体会解耦合的优点了。

更多推荐

【设计模式】工厂模式的作用?工厂模式有什么优点?

本文发布于:2023-06-16 01:29:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/737080.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模式   有什么   工厂   优点   作用

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!