php 面相对象设计,PHP面向对象设计的规范

1.职责

过程化的编码,控制代码的职责是判断文件格式,它判断两次不是一次。面向对象的编码,父类的职责是提供规范,判断格式也只有一次,并且不考虑细节。

2.内聚

内聚是一个模块内部各成分之间相关程度的度量。如果组件职责清晰、分工明确,那么代码较为好维护;如果代码之间关联太广,则维护性较差。(因为你想修改某部分代码的同时,要修改相关代码)。过程化的编码,xml 文件格式判断是分开在两个函数里判断,导致修改时要同时修改,这是低内聚。面向对象的编码,xml 文件格式判断是只在父类的静态方法里,修改一个地方即可,这是高内聚。

3.耦合

当系统各部分代码紧密绑在一起时,就会产生紧密耦合。高耦合使代码扩展和维护异常艰难,而低耦合基本都是分开的功能模块,维护和扩展都非常方便。过程化的编码,xml 处理分别包含在读和写两个函数中,也就是说,两个函数是紧密相连的,修改的时候,要同时修改,增加新文件判断,要同时新增,那么它就是高耦合。面向对象的编码,xml 处理只放在xml 类中,没有和其他类相紧密结合,那么它就是低耦合。

4.设计的四个方向标

没有人能在设计的时候绝对正确。大部分人都要不停地修改代码,因为需求可能发生变化,或者我们加深了对问题的认识。修改代码的时候很容易失去控制。这里加个方法,那里加个类。导致代码和项目结构越发的混乱。

(1).代码重复:如果有,请放到父类或者公共类,合并到一起。

(2).类处理的太多:每个类最好保持独立性,能够尽量单独抽取出来还能使用。

(3).万能类:如果一个类把所有工作都做了,那么请分离,分出父类和子类,父类做规范,子类做实现。

(4).条件语句:如果发现一个类中,条件语句使用太过频繁,特别是同一种条件判断在多个方法中同时出现,那么就说明这个类需要拆分成两个或者更多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蒲慕明:今人眼中的大脑之美 | 书评

圣地亚哥拉蒙-卡哈尔(Santiago Ramn y Cajal, 1852-1934)来源: 知识分子撰文:蒲慕明现代神经科学起源于十九世纪末期;圣地亚哥拉蒙-卡哈尔(Santiago Ramn y)的神经解剖学研究和他提出的神经元理…

python成绩转换、百分制到五分制_设计一个程序,将从键盘上输入的百分制成绩转换成对应的五分制成绩并输出。90分以上为A,80~90分为B,...

展开全部编码思路:申明两个变量: 成绩cj为 浮点数float 且 取值范围为 [0,100] 闭区间内; pf为字62616964757a686964616fe58685e5aeb931333431353262符类型,接收最终分数评级的字母A,B,C,D,E中的一个。引导用户输入100分制的分数,并用cj接收…

数据库临时表空间设置

1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;select status,enabled, name, bytes/1024/1024 file_size from v_$…

一元多项式的加减以及求导

采用链式存储结构&#xff0c;将两个线性链表表示的一元多项式相加减&#xff0c;求导并输出。 #include<stdio.h> #include<stdlib.h>typedef struct lnode{int coef; //系数 int index; //指数struct lnode *next; }node;node *Create() //头插法建立一元…

oracle 驱动表提示错误代码,oracle驱动表以及如何确定驱动表

驱动表普遍认为是由SQL语句的写法决定的&#xff0c;简单的说&#xff0c;就是FROM语句后面的表列表中的最后一个。由于SQL语句是从后向前进行分析&#xff0c;Oracle会根据FROM语句从后到前将各个表依次连接起来。SQL> CREATE TABLE T1 AS SELECT * FROM USER_TABLES;表已创…

sqlite 0转换为bit_Cisco Talos在SQLite中发现了一个远程代码执行漏洞

思科Talos的研究人员在SQLite中发现了一个use-after-free() 的漏洞&#xff0c;攻击者可利用该漏洞在受影响设备上远程执行代码。攻击者可以通过向受影响的SQLite安装发送恶意SQL命令来触发此漏洞。“Sqlite3 3.26.0的窗口函数&#xff08;Window_Function&#xff09;中存在可…

构建未来情报体系—— AI及大数据时代情报分析人员的战略价值

知远战略与防务研究所 沐俭/编译来自&#xff1a;美国战略与国际问题研究中心网站【知远导读】本篇推送编辑节选自美国战略与国际问题研究中心&#xff08;CSIS&#xff09;技术与情报专项研究小组撰写的一篇利用新兴科技提高情报分析人员的战略情报分析能力的文章&#xff0c;…

B1015/A1062 . 德才论 (25)

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”&#xff1a;“是故才德全尽谓之圣人&#xff0c;才德兼亡谓之愚人&#xff0c;德胜才谓之君子&#xff0c;才胜德谓之小人。凡取人之术&#xff0c;苟不得圣人&#xff0c;君子而与之&#xff0c;与其得小人&#xff0…

给matlab图加图注,matlab学习5-数据可视化4-gai.ppt

matlab语言丰富的图形表现方法&#xff0c;使得数学计算结果可以方便地、多样性地实现了可视化&#xff0c;这是其它语言所不能比拟的。;第一节 符号函数绘图第二节 图形编辑第三节 2D数据图第四节 3D数据图第五节 MATLAB的视图功能第六节 图像、视频和声音;plot —— 最基本的…

中国的自动驾驶到底发展到了什么程度?

来源&#xff1a;面包板社区中国在自动驾驶汽车&#xff08;AV&#xff09;领域投入了大量资金&#xff0c;计划大力发展汽车工业这一新兴领域&#xff0c;包括技术、初创企业、测试、法律法规和部署等各个方面。图1&#xff1a;在百度世界2020大会上&#xff0c;百度展示了其全…

数据挖掘算法_技术分享|大数据挖掘算法之KNNk近邻算法

程一舰数据技术处K最近邻(kNN&#xff0c;k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻&#xff0c;就是k个最近的邻居的意思&#xff0c;说的是每个样本都可以用它最接近的k个邻居来代表。KNN是通过测量不同特征值之间的距离进行分类。其基本…

漂亮的树

街上有n棵树&#xff0c;标号为1...n&#xff0c;第i棵树的高度为ai。定义这n棵树是漂亮的&#xff0c;当且仅当1. 对于所有的i&#xff0c;aian-i1&#xff1b;2. 对于1 < i < n / 2 (不是整除)&#xff0c;ai 1 ai 1&#xff1b;比如说 “2 3 4 5 5 4 3 2”和“1 2 3…

1012 The Best Rank (25)

题目描述: To evaluate the performance of our first year CS majored students, we consider their grades of three courses only: C - C Programming Language, M - Mathematics (Calculus or Linear Algrbra), and E - English. At the mean time, we encourage students …

岩板铺地好吗_别人都说岩板好,我笑他人乐太早

若说岩板是陶瓷行业目前最火爆的产品&#xff0c;相信没有人会睁眼说瞎话表示反对。据统计&#xff0c;目前国内已建成的岩板生产线已有55条&#xff0c;计划在下半年建成/投产的岩板生产线已有17条。照此势头发展下去&#xff0c;国内岩板生产线的条数在2021年将逼近100条&…

人工智能和自然智能能否交汇?李飞飞对话斯坦福神经生物学教授Bill Newsome

作者&#xff1a;SHANA LYNCH机器之心编译编辑&#xff1a;张倩计算在神经科学中扮演了什么角色&#xff1f;在分子水平上理解大脑能否带来更好的神经网络&#xff1f;人工智能和自然智能之间是否存在一道无法逾越的鸿沟&#xff1f;会不会出现一个研究智能的统一框架&#xff…

php对学历要求较低,学历低学起php来难不难-PHP问题

首先大家要明白一点&#xff0c;你的学历和学习php的难易度的关系是不大的。php本身就有着简单、易学、易上手的优点&#xff0c;对于新手来说非常友好&#xff0c;所以完全不用担心这个问题。学习php&#xff0c;包括任何其他变成语言&#xff0c;在于你的态度、努力程度&…

spring(三)-事务管理

1、 Spring事务管理 事务管理&#xff1a;本质是使用spring管理事务&#xff0c;完成数据库对于事务的支持。 事务&#xff1a;一系列对数据库操作的集合&#xff0c;一个操作错误&#xff0c;所有都必须回滚&#xff0c;其特点是acid。 &#xff08;1&#xff09;事务并发存在…

2017年网易校招题 解救小易

题目描述 有一片1000*1000的草地&#xff0c;小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易&#xff0c;他手里有n个陷阱。第i个陷阱被安置在横坐标为xi &#xff0c;纵坐标为yi 的位…

oracle数据库的拼接字符串,Oracle数据库拼接字符串

Ora-03113&bsol;Ora-03114与Oracle In 拼接字符串的问题刚深入接触Oracle不久(大学里以及刚参加工作时学到的Oracle知识只能算是皮毛),因为之前使用SqlServer有将近两年的时间,对SqlServer相对来说很熟悉,比较而言,Oracle真心很 ...oracle 数据库 分割字符串返回结果集函数…

思科nat配置实例_Cisco ASA 5520(8.2.4)配置企业内网案例

思科防火墙ASA5520 外观网络拓扑图如下内网 网段 192.168.2.0/24公网IP地址 118.25.235.100公网IP地址网关:118.25.235.1.1防火墙内网IP:192.168.2.1/24配置步骤&#xff1a;1、基本配置及配置内外网接口conf thostname ASAFW #设置主机名enable secret pass123 #设置特权密码c…