设计模式的六大原则
设计模式的六大原则 开闭原则:对扩展开放,对修改关闭,多使用抽象类和接口。; 里氏替换原则:基类可以被子类替换,使用抽象类继承,不使用具体类继承。; 依赖倒转原则:要依赖于抽象,不要依赖于具体,针对接口编程,不针对实现编程。; 接口隔离原则:使用多个隔离的接口,比使用单个接口好,建立最小的接口。; 迪米特法则:一个软件实体应当尽可能少地与其他实体发生

大彬
小于 1 分钟
设计模式之观察者模式
观察者模式 观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe),定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。UML结构图如下: 其中,Subject类是主题,它把所有对观察者对象的引用文件存在了一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供了一个接口,

大彬
大约 3 分钟
设计模式之代理模式
代理模式 代理模式使用代理对象完成用户请求,屏蔽用户对真实对象的访问。 代理模式一般有三种角色: 抽象(Subject)角色,该角色是真实主题和代理主题的共同接口,以便在任何可以使用真实主题的地方都可以使用代理主题。; 代理(Proxy Subject)角色,也叫做委托类、代理类,该角色负责控制对真实主题的引用,负责在需要的时候创建或删除真实主题对象,并且

大彬
大约 5 分钟
设计模式之建造者模式
建造者模式 Builder 模式中文叫作建造者模式,又叫生成器模式,它属于对象创建型模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。 在建造者模式中,有如下4种角色: Product:产品角色;

大彬
大约 6 分钟
设计模式之单例模式
单例模式 单例模式(Singleton),目的是为了保证在一个进程中,某个类有且仅有一个实例。 由于这个类只有一个实例,所以不能让调用方使用new Xxx()来创建实例。所以,单例的构造方法必须是private,这样就防止了调用方自己创建实例。 单例模式的实现需要三个必要的条件: 1. 单例类的构造函数必须是私有的,这样才能将类的创建权控制在类的内部,从而使

大彬
大约 6 分钟
设计模式之工厂模式
工厂模式 工厂模式是用来封装对象的创建。工厂模式有三种,它们分别是简单工厂模式,工厂方法模式以及抽象工厂模式,通常我们所说的工厂模式指的是工厂方法模式。 下面分别介绍下这三种工厂模式。 简单工厂模式 简单工厂模式的定义:定义一个工厂类,根据传入的参数不同返回不同的实例,被创建的实例具有共同的父类或接口。 由于只有一个工厂类,所以工厂类中创建的对象不能太多,否

大彬
大约 5 分钟
设计模式之模板模式
模板模式 模板模式:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 这种类型的设计模式属于行为型模式。定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板模式主要由抽象模板(Abstract Template)角色和具体模板(Concrete Template)角色组成。 抽象模板(A

大彬
大约 2 分钟
设计模式之策略模式
策略模式 策略模式(Strategy Pattern)属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 其主要目的是通过定义相似的算法,替换if else 语句写法,并且可以随时相互替换。 策略模式主要由这三个角色组成,环境角色(Contex

大彬
大约 3 分钟
设计模式之责任链模式
责任链模式 定义 为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,请求会自动进行传递。所以责任链将请求的发送者和请求的处理者解耦了。 优

大彬
大约 5 分钟
设计模式之迭代器模式
迭代器模式 提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露其内部的表示。 把在元素之间游走的责任交给迭代器,而不是聚合对象。 应用实例:JAVA 中的 iterator。 优点: 1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。 4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原

大彬
大约 1 分钟
2