
设计模式
文章平均质量分 56
雁飞飞
兴趣遍地都是,专注和持之以恒才是真正稀缺的。
展开
-
设计模式之模板方法模式
一、模板方法模式基本介绍 模板方式模式(Template Method Pattern),在一个抽象类中定义了一个模板方法,模板方法中包含一系列需要执行的抽象方法,在子类中按需实现父类的抽象方法。 模板方法是定义一个操作(或者流程)中的算法结构,而将算法的具体实现放到子类中去实现,这样使子类可以不改变算法的结构,就能重新定义改算法的某些特定需求。 模板方法属于行为型模式 public abstract class AbstractClass { /** * 定义的模板方法,包含3原创 2021-05-27 00:24:31 · 125 阅读 · 0 评论 -
设计模式之工厂模式
一、简单工厂模式 定义:简单工厂模式属于创建型模式,又叫静态工厂方法模式,是由一个工厂对象根据传入的对象动态的决定创建出哪一种产品类的实例。这些产品类继承自一个父类或者接口。 优点:工厂类包含了必要的逻辑判断,根据外界传入参数创建具体类的实例。外界不必直接创建对象,仅仅消费对象即可,不必知道对象的如何创建的。明确各自的职责有利于软件体系结构的优化 缺点:工厂类包含所有实例的创建逻辑。违反单一职责,当产品的类别不断增多时,工厂类因为对外部传入条件的判断和对产品类型的判断耦合在一起工厂类会越来越臃肿。原创 2021-05-16 00:39:39 · 175 阅读 · 0 评论 -
设计模式设计原则之迪米特法则
迪米特法则的基本介绍 迪米特法则的核心是**降低类与类之间的耦合**(降低不等于消除) 一个对象应该对其他对象保持最少的了解 类与类关系越密切(继承、聚合、组合、关联),耦合度越大 迪米特法则又叫最少知道原则,一个类对自己依赖的类了解的越少越好,被依赖的类不管多复杂,都尽量**将自身逻辑封装在自己类的内部**,对外只提供public方法不对外泄露任何信息。 如果遵守迪米特法则,当一个模块修改时,就会尽量少的影响其他的模块,所有的修改都在自己的类中进行,这样扩展就会相对简单。 迪米特的其它表述方式 迪米原创 2021-05-14 01:23:16 · 112 阅读 · 0 评论 -
设计模式之单例模式
单例模式说明 在实际的开发过程中,有一些对象其实值需要一个就可以,比如:线程池、缓存、工具类、日志对象、驱动程序等。这类对象如果有多个实例,会导致许多问题产生,比如程序的行为异常、资源使用过量、。 单例模式保证系统中改类只存在一个对象,节省系统资源,对于频繁创建销毁的对象,使用单例模式能提高系统性能 实现方式一:饿汉式(静态常量) public class SingletonTest { public static void main(String[] args) { Singl原创 2021-05-14 01:22:23 · 139 阅读 · 0 评论 -
设计模式设计原则之开闭原则
开闭原则的定义 在面向对象编程中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展(提供方)是开放的,但是对于修改(使用方)是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,因为改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现 开闭原则非常重要,设原创 2021-05-14 01:14:30 · 116 阅读 · 0 评论 -
设计模式设计原则之里式替换原则
OO的继承性的思考 父类已经实现的方法,是在设定一种规范和约定,它不强制要求所有的子类都必须遵循这些约定,但是如果子类对这些已经实现的方法修改(Override),就会破坏整个继承体系。 继承给程序带来便利(重用性)的同时,也带来的弊端,例如使用继承会给程序带来侵入性,增加对象的耦合性(对基类的修改可能会影响到子类)、降低可移植性。如果一个类被继承,则当这个类需要修改时,必须考虑所有的子类,并且父类修改后,涉及到的所有的子类功能都有可能会出现问题。 里式替换原则的定义 里氏替换原则(Liskov Su原创 2021-05-14 01:13:54 · 92 阅读 · 0 评论 -
设计模式设计原则之依赖倒转原则
依赖倒转原则(Dependence Inversion Principle)注意事项 高层模块不应该依赖(使用)底层模块,二者都应该依赖其抽象 底层模块尽量要有抽象类或者接口,程序稳定性更好 变量的声明类型尽量是抽象类或者接口,变量引用于实际对象之间会存在一个缓冲层,利于程序的扩展优化(eg:在替换变量的实现类时,只需要修改当前变更位置,而不用修改其余调用位置) 细节(实现类)应该依赖抽象(接口、抽象类),抽象不应该依赖细节 依赖倒转的中心思想是面向接口编程 相对于细节的多变性,抽象的东西要更稳定。以抽象原创 2021-05-14 01:12:45 · 76 阅读 · 0 评论 -
设计模式设计原则之接口隔离原则
接口隔离注意事项 类不应该依赖(使用)它不需要的接口,一个类对另一个类的依赖应该建立在最小接口上 interface Operation { void method1(); void method2(); } class A { public void depend(Operation o) { o.method1(); } } class B { public void depend(Operation o) { o.me原创 2021-05-14 01:11:05 · 84 阅读 · 0 评论 -
设计模式设计原则之单一职责原则
原始需求:设计一个动物类,实现他移动方法 class Animal { /** * 移动 * @param animalType 动物类型 */ public void move(String animalType) { System.out.printf(animalType + "在路上跑"); } } 需求变更:实现鸟、鱼的移动方法 //写法一 class Animal { /** * 移动 * @p原创 2021-05-14 01:08:09 · 69 阅读 · 0 评论