建造者模式---每个人都有自己的路
来源:互联网 发布:mac电脑装双系统 编辑:程序博客网 时间:2024/05/01 05:16
声明:文章内容根据大牛博客的内容,自己理解后,给自己做的学习笔记,文末会附上大牛博客地址链接。有需要沟通交流的可加我QQ群:425120333 随着春节的渐渐临近,绝大多数人都是选择了回家和家人一起过年,但是随着时代的进步,也有一部分人选择了春节和家人去旅游。 面对着同一个景点,不同的游览顺序,给每个人带来的游览体验也不一样, 每个旅游团为了给游客更好的体验都有自己的游览路线,而且可能还不止一个。 针对上面描述的场景,这里用建造者模式的思想来实现下。
public class Client { public static void main(String[] args) { Group group = new Group(); group.firstOrder(); System.out.println("---------------分隔符--------------"); group.SecondOrder(); }}class Group { List<String> playOrder = new ArrayList<String>(); BuildOrder buildOrder = new BuildOrder(); void firstOrder() { this.playOrder.clear(); this.playOrder.add("second"); this.playOrder.add("four"); this.playOrder.add("first"); this.playOrder.add("five"); this.buildOrder.setOrder(playOrder); this.buildOrder.getPark().haveFun(); } void SecondOrder() { this.playOrder.clear(); this.playOrder.add("five"); this.playOrder.add("four"); this.playOrder.add("third"); this.playOrder.add("second"); this.playOrder.add("first"); this.buildOrder.setOrder(playOrder); this.buildOrder.getPark().haveFun(); }}class BuildOrder { Park park = new Park(); void setOrder(List<String> playOrder) { this.park.setOrder(playOrder); } Park getPark() { return this.park; }}class Park { public List<String> playOrder = new ArrayList<String>(); void setOrder(List<String> playOrder) { this.playOrder = playOrder; } void descFirst() { System.out.println("游览景点一"); } void descSecond() { System.out.println("游览景点二"); } void descThird() { System.out.println("游览景点三"); } void descFour() { System.out.println("游览景点四"); } void descFive() { System.out.println("游览景点五"); } void haveFun() { System.out.println("游览景点的顺序如下:"); for (String name : playOrder) { switch (name) { case "first": this.descFirst(); break; case "second": this.descSecond(); break; case "third": this.descThird(); break; case "four": this.descFour(); break; case "five": this.descFive(); break; default: break; } } }}
控制台输出:
游览景点的顺序如下:
游览景点二
游览景点四
游览景点一
游览景点五
—————分隔符————–
游览景点的顺序如下:
游览景点五
游览景点四
游览景点三
游览景点二
游览景点一
后续如果旅游团又出来了新的旅游路线只要在Group类中新添加一个方法就可以了,通过建造者模式,使得游客可以在不知道游览具体细节的情况下,跟着团走就可以获得最好的旅游体验(当然也不是绝对的),而且如果后续要加个别的旅游团也很方便。 建造者模式最主要的功能是基本方法的调用顺序安排,通俗的就是说零件的装配,顺序不同产生的对象也不同;而工厂方法重点是创建,创建零件是职责,组装顺序则不会关心。 参考大牛的博客: http://www.cnblogs.com/zuoxiaolong/p/pattern16.html
2 0
- 建造者模式---每个人都有自己的路
- 每个人都有自己的爱好
- 每个人都有自己的“七寸”
- 每个人都有自己的看法
- 每个人都有自己的诉求
- 我们每个人都有自己的生活方式
- 每个人都有进步的方法,每个人都要审读自己
- 好像每个人都有自己的事情做
- 每个人都有自己的生活方式——找工作记
- 其实每个人都应该有自己的生活
- 每个人都有自己的人生轨迹要走
- 每个人都有一个属于自己的吉尼斯世界纪录
- 每个人都有适合自己的学习方式
- 每个人,都应该有一个自豪的作品代表自己
- 每个人都有属于自己的超级原版相机
- 每个人的都应该有自己的信条,并且是适合自己的信条
- 每个人都有自己的机缘,看别人的风景,品自己的人生!
- 每个人都有自己的一些优势,我也谈下自己的吧
- Matlab中grid 的使用
- csdn如何转载别人的文章
- hdu 下沙小面的(2)(DFS)
- 绘制个性书籍标签以及保存或打印标签(C#)
- SpringMvc @InitBinder 表单多对象精准绑定接收
- 建造者模式---每个人都有自己的路
- linux找出最近或者今天被修改的文件
- 正则表达式基本语法
- CSS干货系列(二)CSS背景与文本
- 如何使用testlink来管理测试用例以及与需求等
- 【LeetCode】Longest Palindrome 解题报告
- esc学习
- 9 线性表(4)
- java-反射(1)-通过反射改变对象的属性