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