`
bardo
  • 浏览: 378278 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11807
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10113
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9501
社区版块
存档分类
最新评论

浅述PHP设计模式(3)

    博客分类:
  • PHP
阅读更多

5、其它面向对象的原则

CARP: The Composite/Aggregate Reuse Principle 合成聚合复用原则
合成聚合复用原则的定义:在一个新对象中使用一些已有的对象,使之成为新对象的一部分。新的对象通过向这些对象的委派达到复用的目的。
提出这一原则的根本点在于,很多编码的问题是滥用继承。通过SOLID原则,我们可能分出了较多的类。
如果最终我们仍是使用SOLID原则将这些类最终继承成为一个类,一下子将我们的松耦合的目标又破坏了。这是因为,继承实现是静态的,很难应对父类的变化。而使用合成聚合复用,则是动态的。
所以,这一原则简单来说可以这样理解,如果SOLID把一个类分成了多个类,则不要设法通过继承让其再成为一个类,而要使用合成聚合复用的手段。这就是说另行定义一个新类,或使用其中一个类,调用其它被分出的类。

LoD:       The Law of Demeter 迪米特法则
迪米特法则是:不要和陌生人说话。
这实际上是与单一职责原则已经对此有所强制。而这一法侧更强调细节。
迪米特法测中明确规定了哪些是朋友。除朋友之外,所有算法均不可以与朋友之外的数据对话。迪米特法则朋友的条件有:
1)当前对象本身
2)以参数形式传入本对象中的对象
3)当前对象的实例变量直接引用的对象
4)当前对象如果是一个聚集,那么,聚集中的元素也是朋友
5)当前对象所创建的对象
可以看出,迪米特法则有助于我们在编码时清楚界定核心与具体。并协助我们创建最松的耦合关系。


IoC:        The Inversion of Conntrol 控制倒置原则
控制倒置原则是指:不要调用我,让我来调用你。实际上就是指核心调用具体的一个模式。
这就是说,核心调用具体,并不是天生就有的,而是我们针对具体问题而做的设计。
这里,实际上产生了两个控制权的倒转:
第一,调用控制权倒转。由核心代码获得。
第二,流程控制权与具体实现控制权倒转,由具体代码获得。
具体而言,如果是让用户直接使用的类,调用控制权上由具体代码掌控的。而流程控制权与具体实现控制权已不存在,或者说已被类的编写者使用。
但当你要继承一个抽象类,或实现一个接口,则就产生了对应的控制倒置。
有人说,控制倒置原则与依赖倒置原则是同义原则。实际上二者并不是等同的。因为,当然,这二者所说的实际是同一问题的两个不同的层面。
控制倒置原则的要求是,交还具体代码的控制权,并强行使用调用控制权。这就是说,凡不属于核心代码的流程控制的一切,均交给具体代码处理。这样一来,我们就更易于处理核心调用具体时对抽象类或接口的定义。

有人说,弄通SOLID原则,或者再加上这三大原则,那么,23个设计模式根本不需要再看了。理论上来讲是这样的。但实际上,如果不背九九乘法表,能计算乘法的,此人是天才。接下来,我们要开始进一步讨论具体的23个设计模式了。不过,有些不同的是,这里的讨论,是没有代码示例的。如同几何老师只讲定理,不给出例题。因为,相对于设计模式,所有“例题”都是与实际脱钩的。我们的目标,是希望没有“例题”的讨论,更加有利于能够运用到实际当中。

{注:文中一切,均属于本人理解,或本人的观点。因本人水平有限,所以,如果您发现错漏,欢迎指正}

 (待续)

 

 

 

 

1
2
分享到:
评论

相关推荐

    网页设计艺术浅述.pdf

    网页设计艺术浅述.pdf

    浅述智能电网的发展.pdf

    浅述智能电网的发展

    浅述中国城市广场设计的雷同化现象.docx

    浅述中国城市广场设计的雷同化现象.docx

    浅述真空冷冻干燥机设计与计算.pdf

    不过,我可以根据文件标题《浅述真空冷冻干燥机设计与计算.pdf》展开相关知识点的讨论。 真空冷冻干燥机是一种用于食品、药品和生物制品等领域的干燥设备,它通过冷冻干燥(也称为升华干燥)过程,将预冻的物料在...

    浅述旅游地图制作中的色彩设计.docx

    浅述旅游地图制作中的色彩设计 本文从色彩心理、色彩对比设计、色彩符号设计几个方面浅述了如何在色彩方面提升旅游地图制作的美感。以下是本文的详细知识点解释: 一、色彩心理 色彩的心理效应是复杂的,涉及到人...

    浅述机电一体化链条输送设备设计

    ### 浅述机电一体化链条输送设备设计 #### 引言 随着工业自动化水平的不断提升,各种类型的输送设备在生产线上扮演着越来越重要的角色。其中,链条输送设备因其可靠性高、适用范围广等特点,在众多输送设备中...

    浅述DDR的PCB设计.pdf

    - 参数设定:手动和自动模式的切换,以及控制参数如AL1、AL2、AH1、AH2等,这些参数对于控制系统的性能至关重要。 - 控制系统稳定性:系统经过实际应用的检验,能够达到生产要求,且长时间运行稳定,大大提高了生产...

    浅述船体结构设计与建造的细节处理

    【船体结构设计与建造的细节处理】 船体结构设计是船舶建造的核心环节,涉及到复杂的操作和多样的工作内容。为了确保设计的高效性和安全性,设计师需关注一系列细节问题。 首先,船体结构设计分为初步设计、详细...

    浅述云计算在平面设计中的应用.pdf

    标题所涉及的知识点为“云计算在平面设计中的应用”。云计算是一种通过网络提供动态可伸缩的虚拟化的资源池,这些资源可以...随着技术的不断进步,云计算与平面设计的结合将更加紧密,预计会有更多创新的应用模式出现。

    浅述医院信息化管理模式的转变.docx

    医院信息化管理模式的转变是当前医疗机构适应时代发展的重要课题。随着社会进步和科技的快速发展,医院必须更新管理模式,利用信息化手段提升服务质量,优化管理流程,确保患者满意度和医疗质量的提高。 国内医院...

    浅述当代互联网公司办公空间设计趋势.pdf

    Airbnb的旧金山总部通过提供灵活的工作区间和个性化办公桌模式,让员工可以自由选择适合自己的工作地点,从而提高工作效率和满意度。 4. 生态化设计:生态化办公空间设计强调人与自然的和谐共存。在设计中融入绿色...

    浅述混合现实现状1

    浅述混合现实技术在设计教学场景中的应用[J]. 大观, 2017(11). [3] 李婧濛. 浅谈增强现实技术(AR)在建筑领域的应用及发展[J]. 建筑工程技术与设计, 2016(1 混合现实技术的不断发展将引领我们进入一个全新的交互...

    浅述汽车企业管理控制系统.pptx

    浅述汽车企业管理控制系统.pptx

    浅述工程质量的控制论文.doc

    浅述工程质量的控制论文.doc

    电子信息工程的发展浅述.pdf

    电子信息工程的发展浅述.pdf

    浅述人工智能技术在天气预测领域中的应用_韩仰.pdf

    3. 当前AI技术在天气预测的应用 - **智能网格预报**:结合大数据和机器学习,对海量气象数据进行深度分析,提高预报的精确度。例如,陕西省气象台的智能网格系统在24小时一般性降水预报中的表现优于人工预报。 - *...

    浅述操作系统的安全与防范.pdf

    浅述操作系统的安全与防范.pdf

Global site tag (gtag.js) - Google Analytics