PHP设计模式汇总
一、面向对象中的多态
多态相对封装与继承,理解稍微会更加复杂。更重要的是, 通过PHP多态的不同体现,体会静态语言与动态语言的巨大差异,而这个差异巨大,影响到设计模式。
多态在面向对象中,指某种对象实例的不同表现形态。如西伯利亚虎不能爬树,孟加拉虎可以爬树,那么老虎,到底能否爬树?
二、什么是设计模式 ?
简单的说,设计模式就是经典场景的经典解决方法。
比如: 拍电影时,常用设计模式
感情狗血剧: 误会模式, 某男和女同事,巧合手抓到一起,女朋友在窗外恰好看到。
杀人恐怖片: 被坏人追杀,被害者跑到电梯里,电梯关到还有一道小缝隙时, 坏人的匕首插进电梯缝隙关不上了。
模式是因为语言不够灵活,不能适应复杂的场景,而想出的办法。
设计模式(Design Pattern)代表了最佳的实践,是软件开发人员在软件开发过程中面临一般问题的解决方案,是优秀程序猿的经验结晶。
面向对象是PHP5之后增加的功能,是PHP走向现代语言的一个标志。
在过程式设计时代,PHP以学习成本低、入门快的特点赢得很多WEB开发者的青睐,但同时也限制了PHP的发展。
借鉴Java和C++之后的PHP语言,在增加面向对象特性的同时,还保持着简便易懂的特点。
但是,如果只是使用了PHP的继承特性,并不是面向对象的设计,因为这并不能提高代码的重用性和灵活性。
不论是 PHP、Java还是C++编程语言,在编程的时候,我们所遇到的大部分问题,其实都已经被其他程序员一再的处理了。
设计模式提取了共同问题,定义了经过测试的解决方案,并描述了可能的结果。
也就是说,设计模式(Design Pattern)是一些可以在项目中重复使用的解决方案。
但是,设计模式并非像组件那样,能被合并来构建系统的固定的解决方案,它们是解决一般性问题的通用方法。
通俗来说,设计模式就是一些编程的套路,不是具体的攻防动作,是为设计更好系统设计的解决方案。
面向对象的原则是“组合优于继承”,因为组合可以以多种方式动态的处理任务。
虽然对象的组合会导致代码的可读性下降,但会让系统更加灵活,复用性更高。
设计模式是很多前辈花费大量精力总结的经验,是经过检验的高效的一系列对象组合方式。
三、如何学习设计模式 ?
经典场景 => 经典问题 => 经典解决方法
经典场景一:同学聚会 => 问你工资 => 你会怎么解决,你的解决方案是?
经典场景二:QQ,屌丝,女神 => 屌丝在QQ上问候女神:女神,还没睡 => 你会怎么解决,你的解决方案是?
经典的设计模式:
(后续待更新)