简单工厂(Simple Factory)模式

工作6年了,一直学设计模式,貌似也一直在用设计模式。后来去面试别人,发现自己一说不出完整的设计模式列表,二很多模式也说不清楚概念。于是下决心重新再读一遍,为了留点儿念像特此写这版笔记,写的不好的地方请大家指出,今后某年再读下一遍的时候还会再写新版本。

本版的特点:白话中的白话,尽量不贴代码,尽量不说官方词汇,尽量不中英文混编,少量扯淡。

废话少说,下面开始第一个:人人皆知的工厂模式

也称作简单工厂模式。

先胡乱说两句模式的介绍哈,以前没有设计模式的时候,那时候还没我,呵呵,我从书上看来的。说程序员们都把常用的公用的模块啊,放到一个大模块儿库中,我们可以理解为一个大的类,里面有成千上万个方法,并分门别类的放好,注释写的倍儿全,让人一看就想起大英百科全书。

这个东西用起来一上来还挺爽的,谁想用啥啦,就调用调用。后来发现,维护起来够要命,牵一发动全身。最终改的乱七八糟。面向对象思想横空出世,大大的解决了这些诟病,邪恶的人类在日后的开发过程中又逐渐总结出一套应用面向对象编程的好套路,那就是模式。

工厂模式的白话描述:糕点店前店后厂,客人要买蛋糕就给你蛋糕,要买绿豆糕就给你绿豆糕。无论是哪种蛋糕,都是面做的,都得能吃。客人不需要关心蛋糕怎么做的,客人只需要知道蛋糕的种类或者名字就可以买来吃。

优点:客人不需要知道怎么做蛋糕,就负责吃,吃出头发还是虫子都是糕点店负责任。客人可以决定什么时候买。

缺点:客人得记住糕点的名字,同样售货员也得记着名字,大师傅也得记住制作方法,一旦售货员换成了新的或者大师傅离职,这店恐怕没法干了。另外如果新增了糕点品种,无论是客人还是售货员都得重新学习和记忆。

你可能感兴趣的:(factory)