《小白HTML5成长之路53》入门级设计模式简单工厂模式
“小白,元旦假期过的还好吧!”
“还行吧!睡了三天,冥想了三天,脑子里把最近看到javascript知识重新整理了一遍,对js的认识比以前清晰多了。”
小白继续说:“只不过,我有个事情不太明白,一个站点或者一个游戏那么多功能,肯定会写很多代码的。他们肯定不会像我现在这样在页面里面一行一行的往下写代码吧?”
老朱:“不错,小白,能提出这个问题说明你对js做了很深刻的思考。我在很早之前做开发的时候碰到过一个问题,你可以听听。有一次我们要实现一个手机预约购物的站点,这个站点有一个用户中心,在用户中心里面包含了获取用户信息、修改用户信息、用户邀请、积分推广等等功能。你猜我是怎么实现的?”
小白:“获取用户信息是一个类、修改用户信息是一个类、用户邀请是一个类、积分推广是一个类这么实现的吧!”
老朱:“恩,没错,刚开始确实是这么做的,可是随着站点功能的增多,我发现自己写的类就越来越多,经常都忘记自己是不是写过某个类。最痛苦的是测试修改bug的时候,那叫一个乱啊。从那之后我吸取教训,做项目的时候就开始刻意的使用一些特定的设计模式来实现功能,效率一下提高了好几倍。”
小白:“设计模式?上学的时候在c++课上听说过,不过我没好好学,基本忘光了。”
老朱:“没关系,设计模式就是一些编程的技巧。我个人感觉直接去学设计模式只能做到对某个模式有印象,只有做开发的时候碰到问题再拿对应的设计模式来解决之后,才能做到真正理解。所以我们讨论的设计模式你如果理解不了,也不必非要硬套。”
老朱继续说道:“今天我们先说一个入门级的模式:简单工厂模式。比如一个购物网站不同种类的商品处理的方法不同,那么我们可能会根据商品的种类不同,创建不同的商品处理类。这些类的结构基本都一样,只不过实现的方式不一样。”
“你看看上面的Itmes类,通过传入name参数,根据参数不同返回不同的实例。这样站点无论多少种商品,我们只需要实例化Items对象就可以了。”
小白说:“哦!这样确实能减轻不少工作量,传入clothes参数实例化的Items对象其实就是一个itemsClothes对象,原来js还能这么写啊。”
老朱:“恩,简单工厂模式虽然简单,却非常有用,你去练习练习吧!明天我们继续了解一些其他的设计模式。”
想学H5的朋友可以关注老炉,您的关注是我持续更新《小白HTML5成长之路》的动力!