文盘Rust -- 领域交互模式如何实现
书接上文,上回说到如何通过interactcli-rs四步实现一个命令行程序。但是 shell 交互模式在有些场景下用户体验并不是很好。比如我们要连接某个服务,比如 mysql 或者 redis 这样的服务。如果每次交互都需要输入地址、端口、用户名等信息,交互起来太麻烦。通常的做法是一次性输入和连接... ...
dapr入门与本地托管模式尝试
1 简介 Dapr是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。Dapr支持的语言很多,包括C++/Go/Java/JavaScript/Python/Rust/.NET/PHP等。 ...
浅谈PHP设计模式的访问者模式
简介: 访问者模式,属于行为型的设计模式。表示一个作用于某对象结构中的各元素的操作。它是你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 适用场景: 类中有易于变化的算法。 希望数据结构与数据分离。 优点: 便于增加新的操作,相当于增加一个访问者。访问者模式将有关行为集中到一个访问者对象 ...
浅谈PHP设计模式的享元模式
简介: 享元模式,属于结构型的设计模式。运用共享技术有效地支持大量细粒度的对象。 适用场景: 具有相同抽象但是细节不同的场景中。 优点: 把公共的部分分离为抽象,细节依赖于抽象,符合依赖倒转原则。 缺点: 增加复杂性。 代码: //用户类 class User { private $name; fu ...
浅谈PHP设计模式的中介者模式
简介: 中介者模式,属于行为型的设计模式。用一个中介对象来封装一系列的对象交互。中介者是各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。 适用场景: 如果平行对象间的依赖复杂,可以使用中介者解耦。 优点: 符合迪米特法则,减少成员间的依赖。 缺点: 不适用于系统出现对 ...
浅谈PHP设计模式的组合模式
简介: 组合模式,属于结构型的设计模式。将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式分两种状态: 透明方式,子类的所有接口一致,使其叶子节点和枝节点对外界没有区别。 安全方式,子类接口不一致,只实现特定的接口。 适用场景: 希望 ...
学习笔记——AOP-代理模式
2023-01-18 一、AOP前奏-代理模式 1、手动实现动态代理环境搭建 (1)基于接口实现动态代理:JDK动态代理 (2)基于继承实现动态代理:Cglib、javassist动态代理 2、实现动态代理的步骤 (1)一个类:Proxy ①概述:Proxy代理类的基类(类似于Object) ②作用 ...
浅谈PHP设计模式的状态模式
简介: 状态模式,属于行为型的设计模式。当一个对象的内在状态发生改变时,允许改变其行为,这个对象看起来像是改变了其类。 适用场景: 控制一个对象的状态改变过于复杂时,把状态的判断逻辑转移到表示不同状态的一系列类中。 一个对象的行为取决于它的状态,并且在运行时刻根据状态改变它的行为时,方便使用状态模式 ...
浅谈PHP设计模式的建造者模式
简介: 建造者模式,又称之为生成器模式,属于创建型的设计模式。将一个复杂对象的构建,与它的表示分离,使得同样的构建过程可以创建不同的表示。 适用场景: 用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的(这就表名可以抽离),但对象的外在面临着复杂的变化。 优点: 创建和表象分离 缺点: ...
也及夜间模式样式
“像白天不懂夜的黑,像永恒燃烧的太阳,不懂那月亮的盈缺。” —— 黄桂兰 0x00 大纲 0x01 前言 夜间模式(Dark Mode),也被称为黑暗模式或深色模式,是一种高对比度,或者反色模式的显示模式,这种模式现在越来越流行,因为和传统的白底黑字相比,这种黑底白字的模式通常被认为可以缓解眼疲劳, ...
设计模式之工厂设计模式
本文主要介绍工厂设计模式的由来和主要形式,分别介绍和分析了普通工厂方法模式、多个工厂方法模式、静态工厂方法模式以及抽象工厂方法模式。 ...
动态代理与责任链模式
动态代理和责任链设计模式适用范围广,在Spring和MyBatis有着重要的应用,比如SpringAOP、Mybatis的插件技术,想要搞懂当中的技术原理必须掌握上面两个设计模式。 代理模式可以理解为您要操作一个对象,但是要经过这个对象的“代理”对象去操作。就好似你在一家软件公司做开发,客户发现程序 ...