数据结构、设计模式知识点
文章平均质量分 74
数据结构、设计模式知识点
李大寶
这个作者很懒,什么都没留下…
展开
-
设计模式之代理模式
代理模式的结构比较简单,主要是通过定义一个继承抽象主题的代理来包含真实主题,从而实现对真实主题的访问,下面来分析其基本结构和实现方法。 1. 模式的结构 代理模式的主要角色如下。 抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。 真实主题(Real Subject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象。 代理(Proxy)类:提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能。原创 2022-05-02 21:31:24 · 75 阅读 · 0 评论 -
设计模式之装饰者模块
装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态扩展一个类的功能,它属于对象结构型模式。 装饰器模式的主要优点有: 装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用 通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果 装饰器模式完全遵守开闭原则 其主要缺点是:装饰器模式会增加许多子类,过度使用会增加程序得复杂性。装饰器模式的结构与实现 装饰器模式主要包含以下角色。 抽象构件(source)角色:定义一个抽象接原创 2022-05-02 20:19:01 · 83 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。 适配器模式(Adapter)包含以下主要角色。 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。 适配器(Adapte原创 2022-05-02 15:49:41 · 219 阅读 · 0 评论 -
设计模式之单例模式
单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式 一、懒汉模式 该模式的特点是类加载时没有生成单例,只有当第一次调用 getlnstance 方法时才去创建这个单例 public class LazySingleton { private static volatile LazySingleton instance = null; //保证 instance 在所有线程中同步 private LazySingleton()原创 2022-05-01 23:24:33 · 67 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式在接口中定义了创建对象的方法,而将具体的创建对象的过程在子类中实现,用户只需通过接口创建需要的对象即可,不用关注对象的具体创建过程。同时,不同的子类可根据需求灵活实现创建对象的不同方法 工厂方法模式的主要角色如下。 抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法 newProduct() 来创建产品。 具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。 抽象产品(Product):定义了.原创 2022-05-01 19:19:20 · 69 阅读 · 0 评论 -
设计模式之策略模式
策略模式为同一个行为定义了不同的策略,并为每种策略都实现了不同的方法 策略模式的主要角色如下 抽象策略(Strategy)类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现。 具体策略(Concrete Strategy)类:实现了抽象策略定义的接口,提供具体的算法实现。 环境(Context)类:持有一个策略类的引用,最终给客户端调用。 抽象策略(Strategy) public interface Trave原创 2022-05-01 18:33:07 · 108 阅读 · 0 评论 -
设计模式之建造者模式
建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的 建造者(Builder)模式的主要角色如下。 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个零部件。 抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口,通常还包原创 2022-05-01 16:15:01 · 127 阅读 · 0 评论