装饰器模式是一种动态扩展对象功能的设计模式,通过组合而非继承实现功能叠加。文章以咖啡订单系统为例,演示如何通过组件接口、具体组件、抽象装饰器和具体装饰器四个核心结构实现该模式。基础咖啡可被牛奶、糖等装饰器层层包装,灵活组合出不同口味,避免继承导致的子类爆炸问题。该模式符合开闭原则,支持功能灵活组合和单一职责,但会增加代码复杂度和调试难度。
辰风沐阳 阅读 403 2021-08-17
模型的关联删除是经常使用的模型特性之一。适用场景举例: 1、在删除文章的同时删除下面的评论 2、 删除用户的同时删除用户的多条评论和多条操作日志
辰风沐阳 阅读 2384 2021-08-16
URL重写:可以通过URL重写隐藏应用的入口文件(通常是index.php),本文记录各种场景的伪静态配置方法。例如:PhpStudy、宝塔中的apache伪静态配置方法
辰风沐阳 阅读 7620 2021-07-29
应用发布后,开发者如果想在用户安装、更新、卸载应用时,安装一些数据表,变更一些数据表或是执行一些脚本,可以通过在 manifest.xml 中进行设置。
辰风沐阳 阅读 2454 2021-07-23
natapp 是基于 ngrok 的国内高速内网映射工具,也就是内网穿透工具。内网穿透:简单来说就是将内网外网通过 natapp 隧道打通,让内网的数据可以通过外网访问。作为程序员,我使用 natapp 的最多场景是:本地项目演示、微信本地开发调试、公众号网页授权、微信支付回调测试
辰风沐阳 阅读 3320 2021-06-29
如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。在 pages.json 中提供 tabBar 配置,不仅仅是为了方便快速开发导航,更重要的是在App和小程序端提升性能
辰风沐阳 阅读 1994 2021-06-20
公众号网页中调起微信支付,常用的支付类型就是 JSAPI。准备工作:1、公众号:APPID、配置网页授权域名(设置与开发-公众号设置-网页授权域名)2、微信商户号:关联公众号,商户号ID、商户API密钥、JSAPI支付授权目录
辰风沐阳 阅读 2602 2021-06-18
当面试被问到 JS 如何清空一个数组,有哪些方法以及这些方法之间有什么区别,主要考察以下几个方面:对 JS 数组操作 API 的熟悉程度,理解不同方法的语法和使用方式;区分重新赋值和修改原数组的区别,理解变量引用与数组对象的关系;不同方法的性能差异,选择最优解的能力
辰风沐阳 阅读 165 2021-06-18