【笔记】设计模式(PHP) - [02]

本文介绍了面向对象编程(OOP)的基本原则,如单一职责原则、封装、继承与多态的概念。探讨了设计模式的重要性,包括按接口编程、优先选择对象组合而非继承的原则,并概述了不同类型的模式,如创建型、结构型和行为型设计模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《Learning PHP Design Patterns》


  • 面向对象编程的首要原则之一:单一职责原则。这表示一个类应当只有一个职责。
  • 在OOP和设计模式中,抽象类可以为项目提供一种组织机制。
  • 尽管不能在接口中包含变量,但是可以包含常量。
  • 封装就是划分一个抽象的诸多元素的过程,这些元素构成该抽象的结构和行文;封装的作用就是将抽象的契约接口与实现分离。
  • 把一个复杂的大问题模块化为多个可解决的子问题,就可以利用封装来得到这些较小的抽象,并对它们完成划分。
  • OOP设计建议使用获取方法(getters)和设置方法(setters),也可分别称为存取方法(accessors)和修改方法(mutators)。
  • 从某种程度上讲,设计模式的目的是建立对象间的通信链路。很多所谓的OOP并没有正确使用获取方法和设置方法,允许公开访问获取方法和设置方法只会破坏封装。
  • 保持封装同时保持对象(类)之间通讯的过程正是设计模式的一个工作。
  • 要修改一个过程,只需要重新组织消息序列,而不是改变一个过程(procedure)。
  • 继承有助于为程序中包含的不同类建立一种结构。不过,为了保证类之间的松绑定,通常会继承抽象类,而且是浅继承,只有一层子类。
  • 多态的真正价值在于,可以调用有相同接口的对象来完成不同的工作。


设计模式基本原则

第一个原则:按接口而不是按实现来编程。(对于PHP来说有些困难)

第二个原则:优先选择对象组合而不是类继承。

  • 接口这个概念是之方法及其签名,而不是关键字interface。
  • 扩展一个抽象类就类似于实现一个接口。
  • 类型提示可以帮助你尽可能遵守第一个设计模式原则。
  • 简单的例子看起来好像继承更胜一筹,但在较大的程序中,组合可以避免维护多个继承层次上的各个子类,而且还可以避免可能导致的错误。
  • 大多数设计模式同时包括继承和组合,设计模式方法建议使用浅继承,另外尽量使用多个类的功能。


把设计模式作为备忘录

要确定何时使用委托以及如何使用,应当包含多少继承,以及如何确保OOP编程中的重用时,可用把设计模式看做是一个备忘录。可用迅速查看一般设计,这些设计往往使用类图展示需要在哪里使用继承和组合。



设计模式的组织:设计模式按作用和范围来组织。

按作用{创建型; 结构型; 行为型}

按范围{类; 对象}

  • 创建型:创建对象的模式。这些模式是对实例化过程的抽象。
  • 结构型:组合结构应当保证结构化。结构型类模式采用继承来组合接口或实现。结构型对象模式则描述了组合对象来建立新功能的方法。
  • 行为型:模式的核心是算法和对象之间职责的分配。绝大多数模式都是行为型对象。
  • 类模式:重点在于类及其子类的关系。类模式是静态的,在编译时已经固定了。因为类模式中的关系是通过继承建立的,所以在各模式中,类范围只占一小部分。
  • 对象模式:也会使用继承,但与类模式的区别在于,对象模式强调的是可以在运行时改变的对象,因此这些模式更具有动态性。


选择设计模式:设计模式不是模板,而是策略。

有些人误以为设计模式就是一些毫无变化的”标准答案“,要严格按他要求的去编程。


与框架相比,设计模式是体系结构中更小的元素,也更为抽象。



设计模式作用、范围和变化
作用
范围模式名可能变化的方面
创建型工厂方法实例化对象的子类
 对象原型实例化对象的类
结构型适配器对象的接口
 对象适配器对象职责而不派生子类
  装饰器 
行为型模板方法算法中的步骤
 对象状态对象状态
 对象策略算法
 对象职责链可以满足请求的对象
 对象观察者依赖于其他对象的对象数,当前可以有多少个依赖对象












JFM7VX690T型SRAM型现场可编程门阵列技术手册主要介绍的是上海复旦微电子集团股份有限公司(简称复旦微电子)生产的高性能FPGA产品JFM7VX690T。该产品属于JFM7系列,具有现场可编程特性,集成了功能强大且可以灵活配置组合的可编程资源,适用于实现多种功能,如输入输出接口、通用数字逻辑、存储器、数字信号处理和时钟管理等。JFM7VX690T型FPGA适用于复杂、高速的数字逻辑电路,广泛应用于通讯、信息处理、工业控制、数据中心、仪表测量、医疗仪器、人工智能、自动驾驶等领域。 产品特点包括: 1. 可配置逻辑资源(CLB),使用LUT6结构。 2. 包含CLB模块,可用于实现常规数字逻辑和分布式RAM。 3. 含有I/O、BlockRAM、DSP、MMCM、GTH等可编程模块。 4. 提供不同的封装规格和工作温度范围的产品,便于满足不同的使用环境。 JFM7VX690T产品系列中,有多种型号可供选择。例如: - JFM7VX690T80采用FCBGA1927封装,尺寸为45x45mm,使用锡银焊球,工作温度范围为-40°C到+100°C。 - JFM7VX690T80-AS同样采用FCBGA1927封装,但工作温度范围更广,为-55°C到+125°C,同样使用锡银焊球。 - JFM7VX690T80-N采用FCBGA1927封装和铅锡焊球,工作温度范围与JFM7VX690T80-AS相同。 - JFM7VX690T36的封装规格为FCBGA1761,尺寸为42.5x42.5mm,使用锡银焊球,工作温度范围为-40°C到+100°C。 - JFM7VX690T36-AS使用锡银焊球,工作温度范围为-55°C到+125°C。 - JFM7VX690T36-N使用铅锡焊球,工作温度范围与JFM7VX690T36-AS相同。 技术手册中还包含了一系列详细的技术参数,包括极限参数、推荐工作条件、电特性参数、ESD等级、MSL等级、重量等。在产品参数章节中,还特别强调了封装类型,包括外形图和尺寸、引出端定义等。引出端定义是指对FPGA芯片上的各个引脚的功能和接线规则进行说明,这对于FPGA的正确应用和电路设计至关重要。 应用指南章节涉及了FPGA在不同应用场景下的推荐使用方法。其中差异说明部分可能涉及产品之间的性能差异;关键性能对比可能包括功耗与速度对比、上电浪涌电流测试情况说明、GTH Channel Loss性能差异说明、GTH电源性能差异说明等。此外,手册可能还提供了其他推荐应用方案,例如不使用的BANK接法推荐、CCLK信号PCB布线推荐、JTAG级联PCB布线推荐、系统工作的复位方案推荐等,这些内容对于提高系统性能和稳定性有着重要作用。 焊接及注意事项章节则针对产品的焊接过程提供了指导,强调焊接过程中的注意事项,以确保产品在组装过程中的稳定性和可靠性。手册还明确指出,未经复旦微电子的许可,不得翻印或者复制全部或部分本资料的内容,且不承担采购方选择与使用本文描述的产品和服务的责任。 上海复旦微电子集团股份有限公司拥有相关的商标和知识产权。该公司在中国发布的技术手册,版权为上海复旦微电子集团股份有限公司所有,未经许可不得进行复制或传播。 技术手册提供了上海复旦微电子集团股份有限公司销售及服务网点的信息,方便用户在需要时能够联系到相应的服务机构,获取最新信息和必要的支持。同时,用户可以访问复旦微电子的官方网站(***以获取更多产品信息和公司动态。
标题“100余款高清原厂车标开机logo”所指的是一份资源集合,其中包含了超过100个汽车制造商的高清品牌标志,这些标志是专为开机画面或车载娱乐系统的启动界面设计的。在车载信息娱乐系统中,车标的开机logo通常会在车辆启动时展示,增添品牌形象,提升用户体验。 描述中的信息告诉我们这份资源提供了三种不同的分辨率:1024x600、800x480和222x124。这些尺寸对应了不同车载屏幕的常见分辨率,确保了在各种车型上都能有良好的显示效果。"任你选择"意味着用户可以根据自己的车辆屏幕尺寸选择合适的logo。"还等什么快上车"是一句促销用语,鼓励用户立即下载并使用这些高清车标。 标签“车机logo”明确了这个压缩包的内容是与汽车相关的开机图形标识,主要应用于车载信息系统。 至于文件名称列表中提到的“drawable-hdpi-v4”,这是Android开发中的一个目录名,用于存放不同密度(hdpi:高密度)的图像资源。在Android系统中,为了适应不同屏幕密度的设备,开发者会将图片资源按照ldpi(低密度)、mdpi(中密度)、hdpi、xhdpi、xxhdpi等分类存储。"v4"可能表示这些资源兼容Android 4.0(API级别14)及以上版本的系统,以确保广泛的设备兼容性。 这份压缩包是一个丰富的汽车品牌开机logo库,适合用于各种车载信息娱乐系统,提供了适配不同屏幕尺寸和分辨率的选项,并且遵循了Android应用开发的标准,保证在多数现代Android设备上可以正常显示。对于汽车电子设备开发者、UI设计师或者车友来说,这都是一份极具价值的资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bomb_2002

有所帮助就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值