php的开始之路

yangtaog yangtaog     2022-12-11     186

关键词:

三大核心:封装,继承,多态

三大核心无处不在,不管是php传统的面向过程化编程,还是后来加入的oop面向对象编程,都一直贯穿整个php的发展进步史。

面向对象,面向接口五大原则:单一职责,封闭-开放,接口隔离,依赖倒置,替换原则

看到书中对于五大原则的讲解非常详细,但是不易于记忆,个人自我总结下:

单一职责:想到单一职责,我脑子里会想到这不就是核心概念里面的封装吗?打个比方就是吃饭这个动作,可以比喻成人的一个职责。那么吃饭就不应该有其他动作,就像小时候爸妈常教育我们一样,吃饭的时候不要说话,吃饭的时候不要玩手机,这就是单一职责,吃饭可能由很多动作组成,但是它最终的目的就是把饭放入嘴里。就像封装一个类一样,类里面的接口eat(),吃饭可能用到嘴,手,碗,筷子。。这些属性,但是绝对不会用到电视。

 

封闭-开放: 封闭可以和上面的单一职责串联起来,就是我这个类产生的对象,是封闭的我只做输出固定的方法,做固定的事,你不能要求我做别的。这样感觉我们是冲突的封闭和开放就是一对反义词,但是不然,封闭是对这个类,这个对象的功能的封装,开放是对这个对象的成长开放。例如说模块的拓展,就像我刚开始封装一个人的类,我可以创建出工人这个对象,工人这个对象的固定职责就是工作干活,我再生成一个老师这样一个对象,职责就是教书育人。这样就封装好了,,,但是后来我又想再封装一个老板或者封装一个程序猿这样的一个对象,,,那么就用到了我们的核心开放,针对我们写的类这个对象的生成模板,不是一成不变的。我们封闭的意义是给一个对象定义单一的一个职责,而开放是为了让这个类具有更多的创造能力,可以创造更多具有单一职责的对象。

 

接口隔离:这个可能就是对一个类里面的接口做一个封闭,或者理一下关系,一个类然后是很多个对象然后是很多的方法(接口),接口的隔离其实也很想单一职责里面说的。但是接口更像是更细分,更小。我们说单一职责,是对象老师负责教书育人这是他的职责,但是教书育人怎么教呢,,,那么问题来了。这就涉及对象后的接口,我理解是方法。也就是对象生成后调用的接口应该是隔离的。。。如对象是老师,职责教书育人,调用的接口很多,如讲课,备课,管理班级,批改试卷。。。而接口隔离,就像是我在备课,但是你不能让我备课的时候再去批改试卷,这就是接口隔离的意义吧!当然理论上说,老师这个对象一遍备课,一遍批改是试卷是可以的,但是我们设计类,设计对象,设计接口的时候不能这么做,这就是接口隔离。

 

依赖倒置:这个依赖倒置我感觉更像是人为判断和固定思维。。。举一个应用场景哈, 我和我老婆去商场买化妆品,然后到化妆品柜台去了,问有没有xxx洗脚水(开玩笑哈!!!),然后柜台服务员像我们介绍洗脚水,我们买完然后结账。  这是正常流程,而依i赖倒置原则我理解是,你可以这样走正常流程去买洗脚水。然后调用各种对象去处理这个流程中涉及的动作,但是你也必须可以反着来,,,反过来就是站在化妆品柜台的角度,柜台服务员看到我和我老婆过来了,然后这个化妆品柜台比较奇葩它只买洗脚水,然后直接就想我们介绍洗脚水,然后买完结账。这就像是一个固定思维,当我走到洗脚水化妆品店门口的时候就,判断出我是买洗脚水的。然后直接走接下来的流程。。。而不是我选择了要买洗脚水然后选择去化妆品店门口。就像是倒着来的,化妆品洗脚水并不依赖于察言观色,反正来了就是买洗脚水的,

 

替换原则:这个就设计到了核心中的继承了,当创建一个基类,然后再写一个派生类也就是子类的时候,子类必须可以替代父类在任何一个地方出现,也就是子类必须能实现父类所能实现的功能,当然这是在特定的场景下,因为派生类本来就是为了应对不同的场景,然后根据细微的区别而产生的。

 

其实上面的总结我也是一知半解,不太理解多态去哪了,多态可能更多的设计到业务场景,就像在人这个类中,给出一些特征(也就是参数)来生成一个对象,这就像是多态,在不同的参数下会生成不一样的对象,就像我们确定一个人是做什么工作的,如果给你说特征,,,比如教书,然后公务员,工作地点在学校,那么你应该可以确定这个对象是一个老师,如在工地干活,干体力活,晒得有点黑,身体强壮,你也应该可以判断他是一个工人对象。这应该就是多态的定义吧!我们上面说到面向对象设计五大原则基本都设计到了封装,继承和多态。很灵活,也很容易被绕晕,我到现在都不敢说自己能完全理解这三大核心和五大原则,但是这三核五大确实是编程的开始和经典。

 

php之路——验证码实现

验证码生成并保存到session<?php //开始session session_start(); //画布大小 $image=imagecreate(100,40); $color=imagecolorallocate($image,255,255,255); //imagefill($image,0,0,$color); //创建验证码 $code=‘‘; for($i=0;$i< 查看详情

20170425开始我的爬虫之路

潜伏了两天,认真学习了爬虫,现在开始模仿别人写我的小爬虫代码了,第一个爬虫开始扒一下新浪国内新闻:http://news.sina.com.cn/china/开始:importrequests#插入请求模块frombs4importBeautifulSoup#从BS4导入BeautifulSoupimportos#插入os模块用于... 查看详情

it的开始之路

...太年轻。打算以后重新来过,找回以前的自己,一切从零开始。  先立个flag,把四级过了,英语一直是我的痛,从今天开始,重新学习英语,一切从头开始,从零出发。  褪去青涩的幼稚,萌生自强的成熟,原此后殚精的... 查看详情

处女作-----开始自己的技术分享之路

处女作-----开始自己的技术分享之路自我介绍我的目标我如何学习程序设计我的学习时间我的就职目标我是一名土木工程专业的00后。不知不觉自学计算机已经几近一年时间,起初是听说互联网行业是朝阳产业。具有无限的发... 查看详情

新的开始-it之路

...性格:双重爱好:运动、音乐梦想:成为IT大神(从现在开始)理想:有个美满的家庭,孝顺父母感情:小白一个缺点:固执、爱面子、主动性几乎没有     刚刚注册了属于自己的博客,心情很激动啊。我是一... 查看详情

[js高手之路]从原型链开始图解继承到组合继承的产生

于javascript原型链的层层递进查找规则,以及原型对象(prototype)的共享特性,实现继承是非常简单的事情一、把父类的实例对象赋给子类的原型对象(prototype),可以实现继承1functionPerson(){2this.userName=‘ghostwu‘;3}4Person.prototype.showU... 查看详情

《机器学习及实践--从零开始通往kaggle竞赛之路》

《机器学习及实践--从零开始通往Kaggle竞赛之路》在开始说之前一个很重要的Tip:电脑至少要求是64位的,这是我的痛。断断续续花了个把月的时间把这本书过了一遍。这是一本非常适合基于python入门的机器学习入门的书籍,全... 查看详情

开始记录我的javascript之路吧...

第一章 JavaScript简介如需了解,请查阅JavaScript高级程序设计,那里面讲解的非常清楚。简单地说,就是随着人们生活水平的提高,电脑的普及,上网诉求的增加,随之而来的就是用户体验的问题,比如,原来家里面绝大多数... 查看详情

今天开始写博客,开始记录java之路的点点滴滴——2017-04-29

...知识比较多,再加上公司最近来了以为架构师,建议我们开始写自己的博客,想想十分有必要,原因有三:  其一:博客园中的牛人很多,许多Java前辈都把知识记录在了这里,在这里可以学到许多新知识,另外也可以扩展下... 查看详情

小白的进阶之路9

---恢复内容开始---今天开始学习spring的事物管理先写一个转账的例子:动手之前,先把逻辑搞清楚:持久层:    AccountDao()------》接口      publicvoidin(Stringin,doublemoney);      publicvoidout(Stringout,double... 查看详情

《java从0开始的成长之路》

大纲这篇博文是我整理寒假一个月来的总结 作用一:主要是方便我以后复习,并尝试对Java虚拟机深度挖掘,希望各位前辈给予指点,我会潜心钻研,只希望水平更进一步。作用二:闭关锁国终将遭遗弃,希望汇聚网络的开... 查看详情

我的学习之路

...功也就那样子,现在我想重复一遍编程之路,从最基础的开始,希望在写的过程中,给自己留下一些比较深刻的印象。 也希望大家可以多多给予指点,帮助。 明日复明日,明日何其多。那么就从今天开始吧,加油,我的... 查看详情

初识c语言之一:秃头之路的开始(代码片段)

初识C语言之一:秃头之路的开始目录:第一个C语言程序数据类型常量和变量字符串前言:因为上次已经自我介绍过了,所以在这里就不多赘述了。这是小白的第二篇博客,也是第一篇技术博客,本篇呢... 查看详情

我是怎么如何开始自己信息技术之路的之一

从今天起,开始正式回顾并记录自己从一个电脑都没有见过的无知少年如何成长为一位对信息技术如痴如狂的追随者的整个经历。我自小学五年级起就有坚持记日记的习惯,这些连续的日志的回顾与撰写得益于对过往日记本的查... 查看详情

自动化测试开始之路

  进入测试行业好几年了,之前一直再做功能测试,偶有尝试性能测试及自动化,也曾尝试写一写脚本之类,快速解决手中问题,但是毕竟自己也是自学,做出来的东西也是勉强自己能用,在尝试进入项目管理失败后,定下心... 查看详情

常春藤之路,从幼儿园开始走起

常春藤之路,从幼儿园开始走起关键词:常春藤,夏令营2016-06-12  所谓常春藤名校,最早是指美国东北部的八所大学组成的体育赛事联盟。包括哈佛大学、耶鲁大学、普林斯顿大学、宾夕法尼亚大学、哥伦比亚大学、达特茅斯... 查看详情

java自学之路

Java自学之路前言从运行第一个程序开始算起,我接触编程也有三年的时间了。最初是从51单片机入门学习的C语言,班里面的大佬带着我一起做小项目,但是因为没人教,基本靠自学,学得慢,写的代码也烂,很没有章法。后来... 查看详情

在今天这个特殊的日子,我想要开始我的代码技术博客之路

首先,恭喜(XXX)的100岁生日我想,任何一个(XX)能够存活100年,并在这短短的100年时间里,把一个贫穷落后的(XX)建设到今天这样大部分能够安居乐业的程度,一定是有一定的道理的所以,在我人生为数不多的时间里,我应该为自... 查看详情