
设计模式
有数的编程笔记
蓄势待发,待机而动
展开
-
3种工厂模式
用户故事: 在系统中存在user用户表,对user表有增删改查操作,对于选用不同的数据库,在创建连接,具体的SQL操作各有所不同。系统在后续维护过程中可能会更换其他数据库,为了在面对后期可能更改数据库的需求,如何避免在后期更换数据库的时候产生的代价较小呢? 一个抽象产品会有不同的具体产品,如车这类抽象产品会有汽车,卡车等。当我们在使用不同车的时候,按照最直观的写法:客户端什么地方使用到对应的车,...原创 2020-01-14 23:41:55 · 228 阅读 · 0 评论 -
代理模式
用户故事: 小明、小代和小花,小明想要追求小花,但是却不认识小花,于是找了和小花同班的小代,让小代帮忙给小花送鲜花、送巧克力。最后小花却和小代在一起了。 在这种情况下,小代和小明其实是有共同点的,小代的送鲜花、送巧克力其实是帮小明送的。因此小明和小代都有送鲜花和送巧克力的功能。不过小代送的礼物实际是小明买的。 体现在代码层面上,它们都实现了同样的接口。同时小代中的方法实现实际是通过调用小明实现的...原创 2020-01-05 22:33:21 · 103 阅读 · 0 评论 -
建造者模式(生成器模式)
用户故事: 在路边小店吃蛋炒饭,同样的蛋炒饭,很可能前后两份中有一份没有放盐。但是为什么肯德基吃汉堡,全国几乎所有的店味道都一样。 原因很简单,路边小店的蛋炒饭,味道完全由炒饭的人决定,我们是否可以吃到好吃的炒饭完全依赖于厨师这样的细节。根据依赖倒转原则,抽象不应该依赖于细节,细节应该依赖于抽象 肯德基做汉堡的流程是固定的,新加一种汉堡,只是配料不同,工作流程是不变的,只是加了一种具体的产品而已。...原创 2020-01-04 18:04:33 · 138 阅读 · 0 评论