设计模式
文章平均质量分 94
AirGo.
[WHY]每一个你不满意的当下,都有一个你不曾努力的过去。
展开
-
我用四种设计模式进行抽象,解决了N家资源方接入问题
需求场景 场景是这样的,我们的业务是医疗场景下的问诊业务,具体场景包括在线咨询和线上复诊,每个场景都分为免费和付费,也就是一共 4 个业务流程,并且相互之间有很大一部分流程相同,但又在部分流程中有或多或少的区别。同时,需要对接医院 HIS 系统的挂号服务,并且每家医院的挂号流程均不相同,比如有些需要手动开收费项来收取挂号诊查费,有些是免费。 难点和方案 上面的需求,总结下来就是要求我们的系统需要同时支持 4 种业务流程,且兼容多家 HIS 系统,翻译成代码层面,就是下面几点...原创 2021-08-07 15:23:43 · 570 阅读 · 0 评论 -
GoLang面向对象和设计模式实现
继承 package main import "fmt" type People struct { name string age int gender string } type Programmer struct { People level string } func main() { data := Programmer{People{"why",24, "mal...原创 2020-01-14 19:18:43 · 1316 阅读 · 0 评论 -
设计模式六大原则【文章来源:新亮笔记-编程是一种思想,而不是敲代码】
编程是一个先思考再编码的过程,思考是优于编码技能的,在思考过程中我们会考虑代码的可重用性、可靠性、更容易被他人理解,这时就会使用到设计模式让代码编写工程化,这篇文章整理了设计模式的六大原则。 单一职责原则 单一职责原则(Single Responsibility Principle) There should never be more than one reason for a class to change.(有且仅有一个原因可以引起类的变更) 不管让我干啥,我都只干一件事,转载 2020-07-24 13:04:19 · 410 阅读 · 1 评论 -
PHP实现IOC依赖注入
<?php class A { public function doAction($a) { echo __CLASS__ . ":" . 'hello' . "\n"; var_dump($a); } } class B { private $a; public function __construct(A $...转载 2020-02-18 21:07:35 · 733 阅读 · 0 评论 -
PHP的static关键字实现单例模式和享元模式
发现 最近看CI框架的源码,发现有很多方法里边用到了static变量,用于实现单例模式,之前没接触到过,今天特意研究一下。 提问 首先抛出一个问题,下面这段代码会输出什么? <?php function test($key = '', $value = '') { static $data = array(); if (!empty($key)) { ...原创 2019-12-26 17:10:35 · 539 阅读 · 0 评论 -
依赖倒置原则应用,Lumen基于PHPMailer封装邮件服务
EmailInterface <?php namespace App\Services\Email; interface EmailInterface { public function send($email, $subject, $content, $attachments = []); } PhpMailerService <?php namespace A...原创 2019-12-06 19:11:09 · 398 阅读 · 0 评论 -
Laravel事件监听+队列异步处理
前言 看到公司里的API里用到了事件监听+队列的方法去异步处理,所以稍微研究了一下,是观察者模式在Laravel中的实现。 在我的例子里看不到优势,可能感觉还有点复杂,其实真正的应用场景很多。 生活实例 比如淘宝某个用户付款,称之为一个Event事件,此时需要通知卖家、物流、淘宝官方等等,同时这些通知是不受先后顺序影响的,此时卖家、物流、淘宝官方等则为多个监听者Listener。所以Eve...原创 2019-09-26 17:56:26 · 4186 阅读 · 0 评论 -
通过简单工厂模式实现多种支付理解抽象类和接口
类是描述一个实体的,实体则包含属性和该属性可以实现的动作,所以抽象类可以包含属性和方法。 接口是描述行为的,所以接口仅可以定义方法,不可以定义属性,但可以定义常量。 举例说明实现支付,支付可以有很多种方式:微信、支付宝、京东白条等。他们都至少有一个支付行为,所以首先定义一个支付接口。 <?php interface PayInterface { //支付行为 ...原创 2019-06-01 16:43:52 · 1636 阅读 · 0 评论 -
PHP常用几种设计模式的应用场景
1.单例设计模式所谓单例模式,即在应用程序中最多只有该类的一个实例存在,一旦创建,就会一直存在于内存中!单例设计模式常应用于数据库类设计,采用单例模式,只连接一次数据库,防止打开多个数据库连接。一个单例类应具备以下特点:单例类不能直接实例化创建,而是只能由类本身实例化。因此,要获得这样的限制效果,构造函数必须标记为private,从而防止类被实例化。需要一个私有静态成员变量来保存类实例和公开一个能...原创 2018-05-27 12:10:25 · 3960 阅读 · 0 评论