3.1 结构型模式
3.1.1 适配器模式
- 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 - 实际就是解决接口不兼容的问题,可以通过第三方的类来解决这个问题。具体实现:适配类实现新接口,重写方法,在重写的方法中调用老接口实现类的方法,完成新老接口的适配操作
3.1.2 桥接模式
- 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。我们通过下面的实例来演示桥接模式(Bridge Pattern)的用法。其中,可以使用相同的抽象类方法但是不同的桥接实现类,来画出不同颜色的圆。
- 实际是将抽象和实现进行分离,两者之间是关联关系而不是继承关系,抽象类和实现类独立,做到低耦合。
3.1.3 过滤器模式
- 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。
- 实际就是编写Criteria 接口与其实现类,根据实际条件进行过滤返回返回满足条件的结果。
3.1.4 组合模式
- 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。
- 实际就是包含其它对象。
3.1.5 装饰器模式
- 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。
- 实际就是额外添加装饰器抽象类(需要实现接口)和实现类在不改变的前提下丰富类的功能。比如python的装饰器。
3.1.6 外观模式
- 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
- 实际是提供给一个公开的方式供用户调用。而隐藏了内部的细节
3.1.7 享元模式
- 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。
- 实际就是共享对象,大大减少对象的创建,降低系统的内存,使效率提高。判别方式则是通过识别码(ID)列入hibernate中根据ID进行判别如果有则直接先前缓存的对象,没有在进行查找,所以这个要做好缓存,然后通过ID唯一标识符进行区分。即数据若是没有则创建数据,并做好缓存,然后返回,若是有缓存的数据(通过唯一标识符)则直接返回。
3.1.8 代理模式
- 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。
- 注意事项: 1、和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。 2、和装饰器模式的区别:装饰器模式为了增强功能,而代理模式是为了加以控制.使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,当我们使用装饰器模 式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地被构造。
- 实际是加以控制返回代理对象。如JDk动态代理。要实现相应的接口。
来源:CSDN
作者:power微世界
链接:https://blog.csdn.net/weixin_43897490/article/details/104112993