好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php依赖倒置 php数组倒序

很多站长朋友们都不太清楚php依赖倒置,今天小编就来给大家整理php依赖倒置,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 如何编写不可维护的php代码 2、 PHP中几种常见的开发模式 3、 php依赖倒置原则里面,什么叫高层模块和底层模块 如何编写不可维护的php代码

由于历史原因,即使在PHP7已经发布的现在,很多人依然没有认为PHP是世界上最好的编程语言。

因为他们看了太多php写出来的不可维护的代码。

怎么写出不可维护的代码呢?

一、心态与精神

那些追求代码漂亮与完美的程序员都是死脑筋,难道不知道时间就是金钱吗?能完成任务就好啊,没事追求什么工匠精神,不管好看与否,稳定与否,更不用管怎么架构,写完就好,没事考虑什么需求变更。还有,BUG产出少,怎么能证明你的价值,老板雇你可不是让你来打酱油的。

二、命名要随意

1,英文不好,拼音多简单,不用刻意去想英文单词,大家都是中国人看得懂拼音。

2,字母太多浪费时间,$v,$x,$y,$z 是最好的最快的命名方式,不用细想。

3,想驼峰就驼峰,想下划线就下划线,建议下划线和驼峰混杂,这叫高手过招,无招胜有招。

4,代码自文档都是传说,有几个开发人员英文够好?所以命名怎么样无所谓了,反正不是给人读的。

三、函数要足够长

PHP天生的脚本语言,当然要写成名副其实的脚本了。尽量要在一个函数里面写完所有的逻辑,这样看你代码的人就不用跳来跳去了,要知道,不是人人都用IDE这枚核武器的,这样大大的方便了那些使用vim,记事本作为开发工具的开发人员。

四、注释

1,千万不要有注释。写注释会浪费大量的开发时间,因为在中文国家,注释也大多中文,切换输入法就会浪费不少时间。以后维护代码的时候也需要修改注释,同样浪费时间,干脆不要注释了。

2,另外一种,也可以写出不可维护的代码,那就是一定要尽量多的注释,最好是日志似的,每一行代码都给写上注释。这样说不定还能增加代码行数,老板看你产量高,说不定立马加薪升职赢取白富美都不是梦了呢。

五、代码格式

1,没必要有固定的代码格式,局部怎么方便怎么写。如果按照特定的格式写,说不定反而不好看呢。

2,尽量一行写完一个代码块(block)。比如 if (true == $isAdmin) {doSomething();} 这样的代码才显得紧凑,不会让文件过长。

3,if-else逻辑只有一条语句的时候,不要写中括号包涵代码块,因为写了是没有意义的,反正都能执行正确,而且不要括号的书写像Python,你的同事会觉得你懂得多。

4,代码不用缩进或者使用tab(非四个空格)缩进,这样你的同事在其他平台或者编辑器下看你的代码的时候,会像乱码一样,这样就防止了别人篡改你的代码而栽赃嫁祸于你。

六、错误处理

1,不要使用try-catch。脚本语言学什么java。

2,不管什么错误统统全部返回false,便于调用者处理错误。

七、不要遵循代码规范

千万不要被代码规范所绑架,什么PSR标准,ZendFramework代码规范等都是限制你个人自由与爱好的行为,不要相信它们。坚持自己的风格才是自由软件世界的一员。

八、不要用设计模式

1,设计模式会让很多人觉得你写的代码很绕,不可读。设计模式会浪费你的大量时间去,因为要熟练运用他们你需要很多时间去学习与研究,更会耽误你代码量的产出,因为每次设计模式的运用都会用思考许久。

2,脚本语言就该有脚本语言的样子,不用折腾设计模式。

九、不要遵循设计原则

1,单一职责原则会产生大量文件,同时会让阅读代码的人到处跳转, 同时会招来同事暗中骂傻逼。

2,依赖倒置会让代码看起来不直观。

最后,你要坚信PHP是世界上最好的编程语言,你一定可以写出漂亮的不可维护的PHP代码。

PHP中几种常见的开发模式

单例模式

$_instance必须声明为静态的私有变量

构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义

getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用

::操作符只能访问静态变量和静态函数

new对象都会消耗内存

使用场景:最常用的地方是数据库连接。

使用单例模式生成一个对象后, 该对象可以被其它众多对象所使用。

私有的__clone()方法防止克隆对象

单例模式,使某个类的对象仅允许创建一个。构造函数private修饰, 

申明一个static getInstance方法,在该方法里创建该对象的实例。如果该实例已经存在,则不创建。比如只需要创建一个数据库连接。

工厂模式

工厂模式,工厂方法或者类生成对象,而不是在代码中直接new。 

使用工厂模式,可以避免当改变某个类的名字或者方法之后,在调用这个类的所有的代码中都修改它的名字或者参数。

    * 如果某个类在很多的文件中都new ClassName(),那么万一这个类的名字

    * 发生变更或者参数发生变化,如果不使用工厂模式,就需要修改每一个PHP

    * 代码,使用了工厂模式之后,只需要修改工厂类或者方法就可以了。

注册模式

注册模式,解决全局共享和交换对象。已经创建好的对象,挂在到某个全局可以使用的数组上,在需要使用的时候,直接从该数组上获取即可。将对象注册到全局的树上。任何地方直接去访问。

策略模式

策略模式,将一组特定的行为和算法封装成类,以适应某些特定的上下文环境。 

eg:假如有一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有的广告位展示不同的广告。在传统的代码中,都是在系统中加入各种if else的判断,硬编码的方式。如果有一天增加了一种用户,就需要改写代码。使用策略模式,如果新增加一种用户类型,只需要增加一种策略就可以。其他所有的地方只需要使用不同的策略就可以。 

首先声明策略的接口文件,约定了策略的包含的行为。然后,定义各个具体的策略实现类。

执行结果图: 

 

总结: 

通过以上方式,可以发现,在不同用户登录时显示不同的内容,但是解决了在显示时的硬编码的问题。如果要增加一种策略,只需要增加一种策略实现类,然后在入口文件中执行判断,传入这个类即可。实现了解耦。 

实现依赖倒置和控制反转 (有待理解) 

通过接口的方式,使得类和类之间不直接依赖。在使用该类的时候,才动态的传入该接口的一个实现类。如果要替换某个类,只需要提供一个实现了该接口的实现类,通过修改一行代码即可完成替换。

观察者模式

1:观察者模式(Observer),当一个对象状态发生变化时,依赖它的对象全部会收到通知,并自动更新。 

2:场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理的逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件的主体代码。 

3:观察者模式实现了低耦合,非侵入式的通知与更新机制。 

定义一个事件触发抽象类。

当某个事件发生后,需要执行的逻辑增多时,可以以松耦合的方式去增删逻辑。也就是代码中的红色部分,只需要定义一个实现了观察者接口的类,实现复杂的逻辑,然后在红色的部分加上一行代码即可。这样实现了低耦合。

装饰器模式

1:装饰器模式,可以动态的添加修改类的功能 

2:一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重写实现类的方法 

3:使用装饰器模式,仅需要在运行时添加一个装饰器对象即可实现,可以实现最大额灵活性。

php依赖倒置原则里面,什么叫高层模块和底层模块

1、可以简单的理解:调用者为高层,被调用者为低层。

2、

比如你有class A和class B

在class A中有对class B的引用,例如A中有某方法有这样一段代码 B b=new B();var data=b.GetData();

那么class A就是高层模块

被引用的class B就是低层模块

当然这个B可以是class 也可以是interface

关于php依赖倒置的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php依赖倒置 php数组倒序的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did197294
更新时间:2023-04-26   阅读:12次

上一篇: PHP的事物级别 php报错等级

下一篇:php保存bit php保存变量

最新资料更新

  • 1.php半角全角 全角半角字符切换
  • 2.php交叉报表 ureport 交叉报表
  • 3.包含tracphp的词条
  • 4.php在线制作教程 用php技术做的作品
  • 5.PHP画饼图动态 python 动态饼图
  • 6.php数据库的建立 php中数据库怎么设计
  • 7.kohanaphp版本 koo版
  • 8.包含asp和php互通的词条
  • 9.php换文字颜色 php文字颜色代码
  • 10.php编程圆面积 编程实现圆的面积
  • 11.包含苏州软世通php的词条
  • 12.扫描登录php代码 扫描登录php代码错误
  • 13.php降低curl版本 php怎么升级版本
  • 14.php配置外网访问 phpstudy外网映射
  • 15.php提取css文件 php引用css文件
  • 16.qbapi.php的简单介绍
  • 17.php接收xml异常 php处理xml数据
  • 18.php体彩投注 体彩官方投注
  • 19.php上传图片木马 php图片上传代码
  • 20.phpstorm写前端 phpstorm写html

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]