《大话设计模式》之策略模式

KarlXu【原创】 2021-03-02 14:22:16

策略模式 将算法分别封装起来,让它们可以相互替换,此模式让算法的变化不会影响到其调用者 实现一个简单的收银功能 假如需要更多的折扣、满减、购买赠送积分,那么这里明显不能这么编写,总不可能一个折扣就新增一个 case 单纯使用工厂模式并不能解决问题,应当使用策略模式,把相同的算法归纳在一个策略里 例如不管打几折,都算是一种策略,满减和普通支付是另外的策略 建立一个抽象类 CashSuper 类,约束继承的子类(每个策略)都实现自己的计算方式 acceptCach 建立一个 CashContext 类,用来维护引用的对象,CashContext 类的构造方法传递进来的是抽象类 CashSuper 类型 而不是某个子类类型,而我们的子类都实现了计算方法,只需要传不同的子类就可以实现不同的策略

标签:
php 设计模式
原创
2114 浏览

《大话设计模式》之面向对象和简单工程模式

KarlXu【原创】 2021-03-01 18:43:41

## 面向对象 ### 封装 实现一个简单的计算器功能 ```php class Program { public function calculate() { $number_a = 12; $number_b = 5; $operate = '+'; $result = 0; switch ($operate) { case '+': $result = $number_a + $number_b; break; case '-': $result = $number_a - $number_b; break; case '*': $result = $number_a * $number_b; break; case '/': $result = $number_a / $number_b; break; default: # code... break; } echo $number_a . $operate . $number_b .'='. $result; } } $program = new Program(); $program->calculate(); ``` 虽然能够满足需求,但假设另外一个地方也需要用到计算,那么你这部分的代码无法直接被其他人调用,这个时候我们需要对代码进行封装

标签:
php 设计模式
原创
2086 浏览

《大话设计模式》PHP版本总结

KarlXu【原创】 2021-03-01 18:34:32

对《大话设计模式》这本书做一个 php 版本的总结

标签:
php 设计模式
原创
2074 浏览

Laradock配置PHP多版本共存

KarlXu【原创】 2020-06-06 01:23:29

在实际开发中肯定遇到过项目用不同的laravel版本,服务器也是用不同的php版本 导致本地跑项目的时候会存在php版本不兼容的问题,想着能不能用laradock配置多版本php共存 在网上找了很久没有能直接拿到就用的,不过在其中却得到一些启发

标签:
php docker laradock
原创
4735 浏览

PHP设计模式

鲁玉成云笔记【转载】 2018-03-28 01:36:10

PHP设计模式的笔记

标签:
php php设计模式
转载
2899 浏览

CGI概念

鲁玉成云笔记【转载】 2018-03-02 12:12:42

CGI是Web服务器与请求处理程序之间传输数据的一种标准,保证Web服务器传递过来的数据是标准格式的,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。

标签:
php cgi
转载
2398 浏览

PHP安全之Web攻击

鲁玉成云笔记【转载】 2018-02-07 21:29:12

攻击者把SQL命令插入到Web表单的输入域或页面请求的字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

标签:
php
转载
2222 浏览

PHP运算符的优先级

KarlXu【原创】 2017-09-08 12:04:58

php中运算符的优先级 递增/递减 > ! > 数学运算 > 大小比较 > 等号或不等号比较 > 引用 > 位运算符(^) > 位运算符号(|) > 逻辑与 > 逻辑或 > 三元运算 > 赋值 > and > xor > or

标签:
php
原创
2419 浏览

PHP中内核的COW机制

KarlXu【原创】 2017-05-08 11:20:54

php有个机制叫COW(Copy On Write)只有在写(修改数据)的时候才会复制一份到内存中,所以此时$a与$b在内存中是指向同一个地方。

标签:
php cow
原创
2892 浏览

PHP开发接口使用RSA解密数据

KarlXu【原创】 2017-04-26 14:29:15

//解密数据 $param = self::rsa_priv_decode($data); return empty($param) ? false : $param;

标签:
php rsa加密
原创
2351 浏览