设计模式
Martiny66
这个作者很懒,什么都没留下…
展开
-
设计原则-基于接口而非实现编程
基于接口而非实现编程是一种非常有效地提高代码质量的手段,在平时的开发中会经常被用到。这里面的接口可以理解为编程语言中的接口或者抽象类。应用这条原则可以将接口和实现相分离,封装不稳定的实现,暴露稳定的接口。上游系统面向接口而非实现编程,不依赖不稳定的实现细节,这样当实现发生变化的时候,上游系统的代码基本上不需要做改动,以此来降低耦合性,提高扩展性。 1.实战应用 假设我们的系统中有很多涉及图片处理和存储的业务逻辑,图片经过处理之后被上传到阿里云上。为此我们统一提供了AliyunImageStore类,供整原创 2020-12-04 11:17:21 · 315 阅读 · 0 评论 -
面向对象与面向过程
1.什么是面向对象编程和面向对象编程语言? 面向对象编程的英文缩写为OOP,面向对象编程语言的英文缩写为OOPL。这两个概念可以用下面两句话来概括: 面向对象编程是一种编程范式或编程风格。它以类或对象为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石。 面向对象编程语言是支持类或对象的语法机制,能方便地实现面向对象编程四大特性(抽象、封装、继承、多态)的编程语言。 一般来讲,面向对象编程都是通过使用面向对象编程语言来实现的,但是,不使用面向对象编程语言,我们照样可以进行原创 2020-12-03 16:26:01 · 730 阅读 · 2 评论 -
代理模式
目录 1.游戏代练 2.代理模式 2.1 代理模式的优点 2.2 代理模式的扩展 2.2.1 普通代理 2.2.2 强制代理 3.动态代理 4.最佳实战 1.游戏代练 现在的游戏代练公司非常多,我们可以把自己的账号交给代练人员,由他们去帮我们升级打怪。我们来修改一下类图: 实例代码如下: IGamePlayer接口: public interface IGamePl...原创 2019-10-13 17:11:59 · 115 阅读 · 0 评论 -
建造者模式
目录 1.变化是永恒的 2. 建造者模式的应用 2.1 优点 2.2 使用场景 1.变化是永恒的 在模板方法模式中,我们的模板方法是按照固定的顺序进行执行的。假如我们顺序是可以调整的,有些方法可能执行,有些方法可能不执行,又该如何设计呢?我们以制造汽车的过程为例,假如汽车形式分为启动、停止、鸣喇叭和引擎声等几个过程,而不同品牌的汽车,执行过程又不尽相同,此时我们可以在汽车模型类CarM...原创 2019-09-24 22:56:06 · 128 阅读 · 0 评论 -
模板方法模式
1.模板方法的定义 模板方法模式是定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式的通用类图如图所示: AbstractClass叫做抽象模板,它的方法分为两类: 基本方法:由子类实现的方法,并且在模板方法中被调用。 模板方法:可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度,...原创 2019-09-22 20:13:52 · 88 阅读 · 0 评论 -
工厂模式
目录 1.工厂方法模式 1.1女娲造人的故事 1.2 工厂方法模式的应用 1.2.1 优点 1.3 工厂方法模式的扩展 1.3.1 缩小为简单工厂模式 1.3.2 升级为多个工厂类 1.3.3 延迟初始化 1.4 最佳实战 2.抽象工厂模式 2.1女娲的失误 2.2 抽象工厂模式的应用 2.2.1 优缺点 2.2.2 使用场景 1.工厂方法模式 1.1女娲造人的故事...原创 2019-09-21 23:57:41 · 165 阅读 · 0 评论 -
单例模式
目录 1.模板代码 2.单例模式的应用 2.1 单例模式的优点 2.2 使用场景 2.3 单例模式的注意事项 2.4 单例模式的扩展 2.5 最佳实战 单例模式是一个比较常见的模式,其定义为确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 1.模板代码 Singleton类称为单例类,通过使用private的构造函数确保了在一个应用中只产生一个实例,并且是自行...原创 2019-09-21 15:41:54 · 80 阅读 · 0 评论 -
设计模式6大设计原则
目录 1.单一职责原则 2.里氏替换原则 2.1 子类必须完全实现父类的方法 2.2 子类可以有自己的个性 2.3 覆盖或实现父类的方法时输入参数可以被放大 2.4 覆写或实现父类的方法时输出结果可以被缩小 2.5 最佳实战 3. 依赖倒置原则 3.1 最佳实践 4.接口隔离规则 4.1 举例 4.2 最佳实战 5.迪米特法则 6.开闭原则 1.单一职责原则 单一职...原创 2019-09-19 22:53:06 · 192 阅读 · 1 评论 -
单例模式的八种写法比较
单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。 简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务...转载 2018-10-24 11:45:26 · 88 阅读 · 0 评论 -
责任链模式与职责链模式
原文链接:Java设计模式之责任链模式、职责链模式什么是链1、链是一系列节点的集合。2.、链的各节点可灵活拆分再重组。职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。角色抽象处理者角色(Handler):定义出一个处理请求的接口。如果需要,接口可以定义 出一个方法以设定和返回对下家的引用。这个...转载 2018-02-24 20:47:55 · 230 阅读 · 0 评论