设计模式 - PHP中类的封装性是怎么体现出来的?
伊谢尔伦
伊谢尔伦 2017-04-10 17:57:43
[PHP讨论组]

从语言的功能实现角度来讲public、private、protected用来标记属性或者方法在相关类和他们的对象中的访问权限。

在其他方面,它的封装性是怎么体现的呢?

封装性是在构建项目的什么阶段、什么地方、以怎样的方式用来干什么?

应该对封装性建立什么样的认识?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
伊谢尔伦

首先,我们来明确类是什么

我们将代码抽象成类。是为了让它能简单,更直观。需要使用这段代码的时候,能一眼就知道该怎么用。该怎么继承来扩展这段代码的功能。

然后,我们怎么去做到上面的需求

  • 建立一个类

  • 将代码放到类方法中

  • 声明方法的访问权限,让调用者知道自己能调用哪些方法; 让扩展类知道哪些方法和成员可以被重写。讲他们用不到的方法设为private以隐藏与他们无关的细节。

最终

我们就成功的将代码的复杂度降低了。

这就是面向对象的用处。

补充:

其实,对于php来说,你如果设置为private,我想调用你这个,我可以去改你的代码的,把你的private改成public我就可以用了。当然,我们忽略这部分,我们设置一个private方法,这个方法比如说是查询学生性别的方法,然后另外一个public的查询学生信息的方法调用这个查询学生性别的方法。但是,我不希望在其他地方可以直接查询学生的性别,我就需要private。

黄舟

@娃娃脾气 谢谢你。
你的回答让我重新认识了私有的含义--使用一个类的时候可以直接略过私有方法
之前只知道有私有方法只能被类自身调用这么一回事,现在来看就是为了告诉使用这个类的人,这些打了私有标记的方法你不能用。同样的一个东西也可以理解成,我们在调用类的时候只需要关心共有方法和受保护方法就行了。从我的经验来看,私有的方法一般都是在给公有方法解耦的时候产生的。
到这里,回看之前的自己,发现自己钻进了一个牛角尖了,不能调用私有和只能调用公有和受保护这里面只有细微的差别。
那么问题又来了,受保护方法使用的场景是什么呢?

大家讲道理

我目前比较习惯的就是写一个类然后将一个功能按照步骤拆分,而且要把方法写的通用一点,这样代码的复用率也会高不少

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号