![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Icebreaking丶
HelloWorld
展开
-
第十三章 PHP设计模式之建造者模式
<?php //画小人 abstract class PersonBuilder { abstract public function BuildHead(); abstract public function BuildBody(); abstract public function BuildArmLeft(); abstract public function BuildArmRight(); abstract public function Buil原创 2021-12-12 14:13:41 · 175 阅读 · 0 评论 -
第十二章 PHP设计模式之外观模式
//子系统1 class SubSystemOne { public function methodOne() { echo "子系统方法1\n"; } } //子系统2 class SubSystemTwo { public function methodTwo() { echo "子系统方法2\n"; } } //子系统3 class SubSystemThree { public function metho.原创 2021-12-12 13:49:40 · 213 阅读 · 0 评论 -
第十一章 迪米特法则
总结 迪米特法则,如果两个类不彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 在类的结构设计上,每一个类都应当 尽量降低成员的访问权限 类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。 ...原创 2021-12-12 13:42:47 · 147 阅读 · 0 评论 -
第十章 PHP设计模式之模板方法模式
// 对甲乙两名同学所抄试卷,尽量将相同的部分提到父类 // 金庸小说考题试卷 class TestPaper { public function TestQuestion1() { echo "杨过说过,后来给了郭靖,炼成倚天剑、屠龙刀的玄铁可能是[]a.球磨铸铁 b.马口铁 c.高速合金钢 d.碳素纤维 \n"; echo "答案 ".$this->answer1()."\n"; } public function TestQues原创 2021-12-06 11:09:01 · 100 阅读 · 0 评论 -
第九章 PHP设计模式之原型模式
<?php class Company { public $company; public function setName($name) { $this->company = $name; } public function getName() { return $this->company; } } Class Resume { public $name; publi原创 2021-12-06 10:42:53 · 272 阅读 · 0 评论 -
第八章 PHP设计模式之工厂方法模式
class Operation { protected $a = 0; protected $b = 0; public function setA($a) { $this->a = $a; } public function setB($b) { $this->b = $b; } public function getResult() { $result = .原创 2021-12-02 09:43:36 · 86 阅读 · 0 评论 -
第七章 PHP设计模式之代理模式
class SchoolGirl { private $name; function __construct($name) { $this->name = $name; } public function getName() { return $this->name; } } interface GiveGirl { public function GiveDolls(); publi原创 2021-12-01 16:09:37 · 175 阅读 · 0 评论 -
第六章 PHP设计模式之装饰模式
<?php abstract class Component { abstract public function Operation(); } /** * 被装饰者类 * ConcreteComponent */ class ConcreteComponent extends Component { public function Operation() { echo "具体对象的操作.\n"; } } abstract class Dec原创 2021-11-29 14:03:10 · 82 阅读 · 0 评论 -
第五章 控制倒转原则
总结 依赖倒转原则, 高层模块不应该依赖底层模块,抽象不应该依赖细节,都应该依赖抽象。针对接口编程,不要对实现编程。 里氏替换原则,子类型必须能够替换它们的父类型。 只有当子类可以替换父类,软件单位的功能不受影响时,父类才真正被复用,而子类也能够在父类的基础上增加新的行为。 由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展。 依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象原创 2021-11-27 15:09:14 · 145 阅读 · 0 评论 -
第四章 开放封闭原则
总结 软件实体应该可以扩展,但是不可以修改。 怎样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本呢? 无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。 等到发生变化时立即采取行动。 在我们最初编写代码时,假设变化不会发生。当发生变化时,我们就创建抽象来隔离以后发生的同类变化。 面对需求,对程序的改动是通过增加新代原创 2021-11-27 10:48:48 · 63 阅读 · 0 评论 -
第三章 单一职责原则
总结 单一职责原则, 就一个类而言,应该仅有一个引起 它变化的原因。 如果一个类承担的职责过多,就等于把职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破环。 软件设计真正要做的许多内容,就是发现职责并把这些职责相互分离。 果你能够想到多于一个的动机改变一个类,那么这个类就具有多于一个类的职责。 ...原创 2021-11-27 10:43:44 · 155 阅读 · 0 评论 -
第二章 PHP设计模式之策略模式
<?php //声明一个抽象类 //里面还有个抽象方法 abstract class Strategy { // 算法方法 abstract public function AlgorithmInterface(); } //A算法 class ConcreteStrategyA extends Strategy { public function AlgorithmInterface() { echo 'A类实现'; } } //B算法 c原创 2021-11-27 10:34:01 · 71 阅读 · 0 评论 -
第一章 PHP设计模式之简单工厂模式
简单工厂模式 <?php /** * Operation */ class Operation { protected $a = 0; protected $b = 0; public function setA($a) { $this->a = $a; } public function setB($b) { $this->b = $b; } public functio原创 2021-11-19 16:42:37 · 67 阅读 · 0 评论 -
PHP面向对象之延迟静态绑定
php5.3已经开始支持延迟静态绑定。 延迟静态绑定指的是在父类中获取子类的最终状态。在父类中,如果出现self关键字,被子类继承后,这个self值的还是父类而不是子类。 如果在父类中出现了self关键字,并且子类继承了含有self的这段代码,那么需要考虑静态延迟绑定。在父类中使用static代替self. 说到底,self到底表示什么?self用在类中,引用自身的静态成员变量,表示的就是类名,完全可以被类名替换掉。被子类继承之后,self还是表示的父类名,而不是子类self了 Demo 未使用延迟静态绑定原创 2020-09-09 20:47:45 · 278 阅读 · 0 评论