起因:最近看了关于策略模式的文章,又想了想自己以前为了快速开发详情页面封装的组件, 里面使用了大量三元表达式,所以感觉可以用策略模式来优化自己的代码
如图这是修改前的代码
看起来很乱吧,各种判断交杂在一起,可读性很差
我们来修改代码
把所有类型放到一个对象里面
分别为图片,普通文字,月份日期,和年日期,如果还有更多的类别可以在这里面加
下面执行的代码变成这样
只需要根据传入的type来分别用什么样的显示样式就可以了,前面的detail.id是为了detail是否有数据的,因为id是肯定会存在的属性,所以用它来判断了
这个是传入的配置对象,在这里配置type,和字段名,没有数据的显示等等,上面的这个是改完后的,下面这个是改之前的
2020.08.14
回看了一下自己的代码,发现还有优化的地方,时间格式完全可以写在一起,传入一个temp来区分时间格式,还有普通文字的命名会对使用者造成误解所以改了一下命名方式,然后使用了一下箭头函数
然后配置对象也做出了一些修改
如果是正常的文本显示传入type为text 如果是时间类型传入type为data然后需要传递一个渲染的格式
其实我们老大建议我把文字和时间这两块合并到一起,但是我觉得这会给使用者造成一种误解,时间就是时间,文字就是文字,如果写到一块则需要更多的判断,这样感觉就不是很符合使用策略模式的初衷了
这样简单的策略模式就完成了,而且代码可读性提高了不少,不会像以前一样读起来晕晕乎乎的了,谢谢大家的观看
碎碎念:本人是还不到一年经验的前端萌新,写这篇文章是为了督促自己来实现这个策略模式的实践,不然这个东西不知道还得在自己的收藏夹里面呆多久,以后也会自己的实际情况写一写其他的总结和方法,虽然不知道有多少人能看到,先谢谢大家,也希望大家能提出宝贵的意见