随笔分类 -  设计模式

有关代码的设计模式,软件设计方面的记录
摘要:数字很难标明业务含义,大脑难记忆,前端的沟通成本增加,传错数字后,数据则插错表,调试定位困难,消耗了精力。 解决方案是: 避开数字标识。客户端使用字符串为参数,告诉服务端,如微信的支付类型使用trade_type=JSAPI|MWEB分别表示公众号支付和h5支付。这里若使用数字,确实难以理解业务意义 阅读全文
posted @ 2018-01-20 08:19 王滔 阅读(1573) 评论(0) 推荐(0)
摘要:1、避免使用魔数if($age<18){}这个18不太明白为什么要这样子。可以将28定义在一个变量里面,这个变量命名表明了这个值的含义$adult_age = 18;//成年的分界点年龄if($age<$adult_age){}2、函数的返回结果:不要使用一个变量来存储返回结果一旦你知道了返回结果,... 阅读全文
posted @ 2015-11-11 18:33 王滔 阅读(1242) 评论(0) 推荐(1)
摘要:开发中三个经典的原则单一职责:一个类,一个方法专注做一件事情。不要混合多个目标。 比如我的"绑定手机接口",目标的确是干一件事情:绑定但是里面还是要判断:这个手机号是不是被占用,还要判断绑定历史,判断手机白名单只不过把判断绑定历史,判断白名单,封装成单独的方法来调用。把判断绑定历史,判断白名单,封装... 阅读全文
posted @ 2015-10-12 17:55 王滔 阅读(509) 评论(0) 推荐(1)
摘要:听到这样说法:hash是内存中使用的经典数据结构。内存是典型的随机访问设备。 为什么hash这种数据结构很适合内存使用呢?如何理解内存是随机访问设备呢? 因为我想知其所以然,如何理解背后的原因,我花费点时间来学习一番。 我之前学过搜索引擎中的倒排索引,其中的单词词典就是使用hash方式实现:对关键词 阅读全文
posted @ 2014-04-03 22:15 王滔 阅读(3893) 评论(1) 推荐(1)
摘要:使用工厂模式的目的或目标?工厂模式的最大优点在于创建对象上面,就是把创建对象的过程封装起来,这样随时可以产生一个新的对象。减少代码进行复制粘帖,耦合关系重,牵一发动其他部分代码。通俗的说,以前创建一个对象要使用new,现在把这个过程封装起来了。假设不使用工厂模式:那么很多地方调用类a,代码就会这样子创建一个实例:new a(),假设某天需要把a类的名称修改,意味着很多调用的代码都要修改。工厂模式的优点就在创建对象上。工厂模式的优点就在创建对象上。建立一个工厂(一个函数或一个类方法)来制造新的对象,它的任务就是把对象的创建过程都封装起来,创建对象不是使用new的形式了。而是定义一个方法,用于创建 阅读全文
posted @ 2014-03-11 19:22 王滔 阅读(24271) 评论(3) 推荐(0)
摘要:一、单件模式英文叫做sington。其他语言中有叫做单例模式,其实都是一样的道理。保证只会出现单个实例,所以是单例。翻译成单件,永远只会产生一件,呵呵。还有翻译成单元素模式。其实关键是看这个英文比较好。英文是sington,统一是使用这个单词。单件模式的目的我理解如下:避免重复创建(实例化)对象,已经有现成的实例就用现成的。减少资源的浪费(因为创建多个实例,浪费内存,完全没必要),单件模式保证了每时每刻引用的都是同一个实例。为什么同时创建多个实例会引起逻辑上的错误呢?$obj1$obj2多个实例。可能会覆盖掉里面的静态static变量吗? 不是这样子的。其实是因为我目前还没遇到更加严重的问题。 阅读全文
posted @ 2014-03-11 19:21 王滔 阅读(2757) 评论(0) 推荐(0)