薄情先生|你所需要知道的代码整洁之道( 三 )
设计模式设计模式的开山鼻祖 GoF 在《设计模式:可复用面向对象软件的基础》一书中提出的23种经典设计模式被分成了三类 , 分别是创建型模式、结构型模式和行为型模式 。
在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案 。
常用的设计模式有:策略模式、发布—订阅模式、职责链模式等 。
比如策略模式使用的场景:
策略模式:定义一系列的算法 , 把它们一个个封装起来 , 并且使它们可以相互替换 。
if (account === null || account === '') {alert('手机号不能为空');return false;}if (pwd === null || pwd === '') {alert('密码不能为空');return false;}if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(account)) {alert('手机号格式错误');return false;}if(pwd.length<6){alert('密码不能小于六位');return false;}复制代码
使用策略模式:const strategies = {isNonEmpty: function (value, errorMsg) {if (value =http://kandian.youth.cn/index/=='' || value =http://kandian.youth.cn/index/== null) {return errorMsg;}},isMobile: function (value, errorMsg) { // 手机号码格式if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(value)) {return errorMsg;}},minLength: function (value, length, errorMsg) {if (value.length < length) {return errorMsg;}}};const accountIsMobile = strategies.isMobile(account,'手机号格式错误');const pwdMinLength = strategies.minLength(pwd,8,'密码不能小于8位');const errorMsg = accountIsMobile || pwdMinLength; if (errorMsg) {alert(errorMsg);return false;}复制代码
又比如 , 发布—订阅模式具有的特点:- 时间上的解耦
- 对象之间的解耦
如果大家需要了解设计模式更多知识 , 建议另外找资料学习 。
总结宋代禅宗大师青原行思提出参禅的三重境界:
参禅之初 , 看山是山 , 看水是水;禅有悟时 , 看山不是山 , 看水不是水;禅中彻悟 , 看山仍是山 , 看水仍是水 。
同理 , 编程同样存在境界:编程的一重境界是照葫芦画瓢 , 二重境界是可以灵活运用 , 三重境界则是心中无模式 。 唯有多实践 , 多感悟 , 方能突破一重又一重的境界 。
最后 , 愿大家终将能写出自己不再讨厌的代码 。
最后真的是最后了 , 有空会补上上述的示例代码 , 欢迎大家 Star & PR 呀:你所需要知道的代码整洁之道
参考
- 《代码整洁之道》
- 《编写可读代码的艺术》
- 《重构-改善既有代码的设计》
- 《JavaScript设计模式与开发实践》
- 《人人都懂设计模式:从生活中领悟设计模式:Python实现》
- 张先生18823381855|转让海翼国际控股
- 先生|一停就是10年,60万豪车竟没人要?车主说:我不能动……
- 明星八卦|靳东亮相新戏发布会,阵容曝光被批不如《恋爱先生》,你怎么看
- 9月7日晚间|柏堡龙:实际控制人陈伟雄先生、陈娜娜女士解除质押共约2690万股
- 先生|60万豪车竟没人要?车主说:我不能动……,一停就是10年
- 包先生|什么包显品味还不撞包?看看这篇你就知道了!
- 疫情后的九先生轰趴馆市场前景依旧稳定
- 薄情先生|热烈祝贺首批CPAC分散控制系统产品正式交付
- 薄情先生|汉华推出氮化镓PD快充散热解决方案,全方位满足电源厂商需求
- 郭艾伦|辽宁男篮好消息!核心后卫正式留队,成为CBA顶薪先生