【结构型】装饰器模式 定义 UML图 代码 应用 定义 定义:动态地给一个对象添加一些额外的职责或者行为。就增加功能来说, Decorator模式相比生成子类更为灵活。 装饰器模式的组成: 1.抽象组件角色(Component):定义一个对象接口,以规范准备接受附加责任的对象,即可以给这些对象动态地添加职责 2.具体组件角色(ConcreteCo...
【结构型】适配器模式详解
【结构型】适配器模式 定义 UML图 代码 应用 定义 定义:将一个类的接口转换成需要的接口,使原本由于接口不兼容不能一起工作的类可以一起工作。 适配器接口的几个角色: 1.目标接口(TargetInterface):Client端所期待的接口【可以是具体的类、抽象类、接口】; 2.适配类(ServerAPI):需要适配的类【Server端提供的...
【创建型】原型模式详解
【创建型】原型模式 定义 UML图 代码 应用 定义 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式主要用于对象的复制,它的核心是就是原型类,原型类需要具备以下条件: 1.实现Cloneable接口,否则会使用clone方法会抛出CloneNotSupportedException异常; 2.重写clone方...
【创建型】建造者模式详解
【创建型】建造者模式 定义 UML图 代码 应用 定义 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式的四个要点: 1.产品类,产品类可以是具体的类,也可以是抽象类与其实现类组成; 2.抽象建造者,可以是个抽象类或者接口,一般有创建产品方法和返回产品方法; 3.建造者,实现抽象建造者; ...
【创建型】抽象工厂模式详解
【创建型】抽象工厂模式 定义 UML图 代码 应用 定义 定义:多个抽象产品类,派生出多个具体产品类;一个抽象工厂类,派生出多个具体工厂类;每个具体工厂类可创建多个具体产品类的实例。 工厂方法模式是简单工厂模式的升级版 抽象工厂模式有四个要素: 1.一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。 ...
【创建型】工厂方法模式详解
【创建型】工厂方法模式 定义 UML图 代码 应用 定义 定义:一抽象产品类派生出多个具体产品类;一抽象工厂类派生出多个具体工厂类;每个具体工厂类只能创建一个具体产品类的实例。 工厂方法模式是简单工厂模式的升级版 工厂方法模式有四个要素: 1.产品接口,产品接口里定义产品的相关动作,产品接口里的定义直接决定代码的稳定性; 2.产品实现,产品...
【创建型】简单工厂模式详解
【创建型】简单工厂模式 定义 代码 应用 定义 简单工厂类又称为静态工厂类 简单工厂模式根据提供给的不同数据,返回不两只类的实例,但这些类有一个共同的父类。 简单工厂模式有三个要素: 1.产品接口。产品接口里定义产品的相关动作,产品接口里的定义直接决定代码的稳定性; 2.产品实现。产品实现决定了产品的具体的动作; 3.工厂类。通过传入工...
【创建型】单例模式详解
【创建型】单例模式详解 定义 代码 应用 定义 定义:单例模式就是在应用程序中,一个类只有一个实例的存在。 单例模式的要点有三个; 1.某个类只能有一个实例; 2.它必须自行创建这个实例; 3.它必须自行向整个系统提供这个实例。 有很多应用程序中都有单例模式的应用,比如数据库连接【稍后分析】。 单例类既可以被状态化,也可以无状态化。...
设计模式原则
设计模式原则 1.单一职责原则 2.里氏替换原则 3.依赖倒置原则 4.接口隔离原则 5.迪米特法则 6.开闭原则 1.单一职责原则 单一职责原则简称SRP【Single Responsibility Principle】,设计模式最基本原则。 简单的说就是一个类只负责一件事,只有一个因素能引起类的变化。 我们可以理解为类的专注吧,只有专注于解决某一件事...
【算法解忧】零后置,保持数字相对排序
零后置,保持数字相对排序 So easy的问题都想不明白了,看来是要生锈的节奏! 有个问题如下: 现在有一个整型数组 [1,4,0,8,5,0,0,3] 写个function将输出: [1,4,8,5,3,0,0,0] 将所有的0后置,结果保持相关数的相对顺序。 Note: 不可创建新数组; 最小操作数组; 怎么玩?突然觉得应该有个待定指针的想法。 分析下: 1 4 0 8...