![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
面向对象的灵魂
卷儿~
在校大学生,好撸铁。性别男,爱好女。
个人主页:http://www.wayne-lee.cn/
展开
-
设计模式基础 图文代码浅析装饰者模式
原理概述装饰者模式(decorator),顾名思义,就是为方便动态地给对象进行装饰所设计的模式。这个模式要解决的问题就是:当存在一些装饰品类以及被装饰品类时,要使用装饰品装饰一个对象,这些装饰品允许重复且不限制先后。那么应该怎么表示这个装饰的过程呢?一般来说,装饰的体现在于原对象的属性会有所增益像是体积、价格、评分等,例如将人装饰以衣服,将订餐装饰以作料等。从我个人角度看,基于这样的特性,装饰物作用不像是一个组成物,而更像是一个滤镜。也就是说,它们不直接影响被装饰物而是在程序与被装饰物的交互过程中体现原创 2020-07-18 19:34:44 · 171 阅读 · 0 评论 -
设计模式基础 浅析适配器模式 附奇妙示例
概述适配器(adapter)模式,它的定义是这样的:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性。让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。核心作用就是适配。这个适配的含义,在于原来的方法不能直接满足需求,进行一定的“处理”后才能使用。使用这个模式进行设计,需要涉及到几个部分:需要被适配的类或者对象,提供的方法需要被处理才可兼容需要的输出,通常是一个接口,确定适配的输出方法适配器,“处理”被适配者的方法,使其变得兼原创 2020-07-16 18:24:20 · 275 阅读 · 0 评论 -
设计模式基础 建造者模式
定义及适用场景建造者(Builder)模式,是一种创建型的设计模式。使用建造者这样一个名称命名它,是因为这个设计模式专注于对象复杂的建造过程。而非像工厂模式那般仅注意对象的产生。它适用于类似生成游戏人物这样的场景。一个游戏人物,需要很多的步骤来完成设计,像基础数据设定,技能选择,生涯选择等等。值得注意的是,这些都是构建人物对象的生产过程,而非人物对象本身。建造者模式的一个特点,便是它使得模型同其生产过程分离,减少了类的耦合性,增加了架构的灵活性。因为这样一来,如何生产对象,如何将对象从new出的一个原创 2020-06-10 11:05:11 · 232 阅读 · 0 评论 -
设计原则 之 开放封闭原则
分析一波开放封闭原则,它规定了软件设计和维护时应该遵守的一种规则,即对扩展开放、对修改关闭。扩展和修改不难理解,扩展指的是对原有的结构进行拓展,增加新的类让其继承父类、实现接口,利用多态、继承等特性进而实现新的功能。而修改在这里指的是更改那些已经投入使用的类尤其是抽象类和接口,包括增删改类方法及其实现步骤或参数,还有类的属性等。面对功能的实现与可能的增改。对扩展开放意味着,通过扩展代码、增加...原创 2020-04-20 18:21:59 · 839 阅读 · 0 评论 -
设计模式 之 里氏替换原则
里氏替换原则的定义有:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。定义很完备,但也不太好理解。说白了,其实就是使用到父类的地方都可以完全的替换成它的某个子类,而整个程序的运行不受任何影响。也就是说,使用父类对象调用某个成员方法,和使用其某个子类对象调用同名的成员方法...原创 2020-04-18 16:45:30 · 206 阅读 · 0 评论 -
设计模式 之 迪米特法则
设计模式系列文章:设计模式 之 设计原则(1) 单一职责原则 接口隔离原则 依赖倒转原则面向对象 之 不能不知道的类间关系(上)泛化、实现、依赖 C++与Java面向对象 之 不能不知道的类间关系(下)关联、聚合、组合 C++与JavaJAVA单例模式分析及其实现:饿汉式、懒汉式、双重检查、静态内部类迪米特法则迪米特法则,又叫做最少知道原则。我们先来看一下这个法则的定义:迪米特法...原创 2020-04-17 12:12:08 · 602 阅读 · 0 评论 -
设计模式 之 设计原则(1) 单一职责原则 接口隔离原则 依赖倒转原则
单一职责原则指的是对于一个类,其职责尽可能单一。即一个类仅负责一个方面的内容,对于与该职责无关的的内容,不应出现在该类中。举例来说,在学习这个原则之前,博主本人经常犯的很常见的一种违反单一职责原则的错误,就是在设计类的时候,将这个类的功能方法以及类本身的模型写在一起,模型类的职责就是表示模型,记录模型的数据,而不涉及模型的行为。因此这样的设计不符合单一职责原则,应该将操纵模型的职责拆分出去形成...原创 2020-04-16 16:25:36 · 427 阅读 · 0 评论 -
面向对象 之 不能不知道的类间关系(下)关联、聚合、组合 C++与Java
这篇文章是类间关系的下半篇,包含了 关联、聚合和组合 三种关系。建议先食用上篇文章。上半篇博文戳这里关联 (Association)关联关系呢,可以看作是一种依赖的关系(上篇博文我们谈到过,依赖关系的范围实际上很广)。它强调的是,一个类知道另一个类的对象,而非仅仅是实现方法时用到。这个“知道”,往往指的就是在类中以另一个类对象作为成员(C++语言可以是对象本身,也可以是引用或是指针,而在j...原创 2020-04-13 16:42:55 · 540 阅读 · 0 评论 -
面向对象 之 不能不知道的类间关系(上)泛化、实现、依赖 C++与Java
类间关系是面向对象精华内容的基础。如果你还不知道的话,就看下去了解了解吧。常见的类间关系分为六种泛化 (generalization)实现 (Implementation)依赖 (Dependence)关联 (Association)聚合 (Aggregation)组合 (Composite)相较于知道他们的中文,往往还需要掌握其对应的英文单词。不同的地方对这些关系会有不同的命...原创 2020-04-13 10:40:21 · 794 阅读 · 0 评论 -
JAVA单例模式分析及其实现:饿汉式、懒汉式、双重检查、静态内部类
本文是对站中学院视频单例模式的学习笔记。视频在此直入正题单例模式是什么首先,单例模式是设计模式的一种,是对类的编写的一种模式规范。具体到单例模式,通俗说,例就是实例,就是对象;单就是一,代表唯一。所以说,单例模式,就是该类仅能有一个实例化对象的设计模式。较全面的说,单例模式即使保证在整个应用程序的生命周期中的任意时刻,单例模式类的实例都只存在不超过一个(一个或者不存在)。单例模式实现基...原创 2020-02-08 22:45:54 · 397 阅读 · 1 评论