PHP设计模式、基本原理

 2024-03-15 00:14:23  阅读 0

八种设计模式

总结:设计模式之所以存在,是为了在代码中添加相同类型时,仍然不需要修改原有代码,实现封装、继承、多态的高效模式;

php和java的区别:Java可以将写好的接口文件封装成java包。 接口调用时可以随意使用,底层信息无法查看,保证安全。 只有通过文件使用指南才能实现调用; 相反,PHP很快学会了手工编写代码,却只顾一件事而忽略了另一件事,导致用户没有对象设计的一般概念,从而产生冗余文件;

1.简单工厂模式--

组件:工厂角色、抽象产品角色、具体产品角色

根据选择实例化工厂类,然后连接到具体的产品角色,并继承具体产品角色中的抽象产品角色来实现功能;

2.工厂方法模式--

php高级程序设计 模式 框架与测试_测试框架原理_测试框架如何设计

组件:抽象工厂角色、具体工厂角色、抽象产品角色、具体产品角色

与简单工厂不同的是,在工厂方法中,每个具体的产品角色实例直接对应一个具体的工厂实例,实例对象直接传递公共抽象产品角色函数; 这意味着每次新增特定产品时,只需要再次添加对应的工厂角色即可;

3.抽象工厂模式--

组件:抽象工厂角色、具体工厂角色、抽象产品角色、具体产品角色

与工厂方法类似,但是当使用抽象工厂模式时,具体工厂会引用抽象工厂(公共接口)。 当重写该方法时,会实例化多个具体产品,每个具体产品对应其自己的抽象产品。 拥有更广泛的产品组合;

4.单例模式--

也称为 monad 模式,它是一种常见的软件设计模式。 应用这一模式时,单例对象的类必须确保只存在一个实例。

php高级程序设计 模式 框架与测试_测试框架原理_测试框架如何设计

实施技巧:

1、首先使用私有静态变量判断是否创建了唯一的实例;

2、创建一个对外暴露的静态方法,如:(),这是获取实例的唯一接口;

3.为了防止直接new实例化,写函数:(),()------类似防止外键优化

复制对象;

5.观察者模式--

也称为发布/订阅模型; 它将主体与具体的观察者解耦,使得耦合的双方都依赖于抽象而不是具体本身,使得彼此的变化不会影响到其他人。 实现低耦合、非侵入性的通知和更新机制;

6.策略模式--

与简单工厂模式类似,具体区别在于,添加策略模式时,无需修改入口文件。 只需要添加一个策略实现类,然后执行入口文件中的判断即可; 例如:计算器的加减乘除;

7.适配器模式--

新旧模式转换时,如果无法直接使用该模式,则使用适配器代码转换要适配的对象,最后通过调用适配器代码解决问题;

8.桥接模式--

将两个原本不相关的类组合起来,利用两个类中的方法和属性输出一个新的结果,适合两个变化维度非常强的情况;

事实上,桥接模式只是用组合关系替代了继承关系(多重继承),从而降低了系统之间的耦合(解耦抽象和实例化),减少了代码编写量;

面向对象的php五个基本原则

标签: 角色 工厂 抽象

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码