在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。封装:把行为用接口封装起来,我们可以把那些经常变化的部分,从当前的类中单独取出来,用接口进行单独的封装。
互相替换:我们封装好了接口,通过指定不同的接口实现类进行算法的变化。
单例模式:作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。 要点:1.需要一个保存类的唯一实例静态成员变量: 2.构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例。 3.必须提供一个访问这个实例的公共的静态方法(通常是getInstance方法),从而返回唯一实例的一个引用 private static $_instance; 工厂模式:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 核心思想就是:用一个单独的工厂类去创建实例化的过程。 工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象. 通过使用工厂类,外界可以从直接创建具体产品对象的尴尬 局面摆脱出来,仅仅需要负责“消费”对象就可以了。 而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。 不需要了解实例是如何工作的,只需要在工厂里面创建它即可。 组合模式:有时候又叫做部分-整体模式。常使用的场景:树形菜单,文件夹菜单,部门组织架构图 用于将对象组合成树形结构以表示“部分-整体”的层次关系。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式定义了一个单根继承体系,使具有截然不同职责的集合可以并肩工作。 装饰器模式:装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。 它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 组件对象的接口:可以给这些对象动态的添加职责 所有装饰器的父类:需要定义一个与组件接口一致的接口,并持有一个Component对象,该对象其实就是被装饰的对象。 具体的装饰器类:实现具体要向被装饰对象添加的功能。用来装饰具体的组件对象或者另外一个具体的装饰器对象。 适用场景: 1. 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。 2. 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实。 3. 当不能采用生成子类的方法进行扩充时。 一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。 另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。 |
2022-07-08
2022-08-17
2022-11-06
2022-08-14
2022-08-17
请发表评论