设计模式
文章平均质量分 76
学习设计模式,不在乱写代码
贝勒里恩
用生命写代码,用灵魂做界面!
展开
-
软件系统六大设计原则
应该有且仅有一个原因引起类的变更。原创 2022-10-26 17:08:54 · 2912 阅读 · 0 评论 -
UML类图
一、类的表示在UML类图中,类使用包含类名、属性和方法且带有分割线的矩形来表示,如下图示:1.1、类的属性的表示方式可见性 名称 : 类型 [ = 缺省值]注意:[ ]中的内容表示可选;可见性表示方式+public-private#protected/friendly例如:1.2、类的方法的表示方式可见性 名称(参数列表)[ : 返回类型]...原创 2020-12-07 22:29:41 · 181 阅读 · 0 评论 -
单例模式
一、单例模式的概念==单例模式(Singleton Pattern)==是以及比较简单的设计模式,它确保某一个类只有一个实例,并且自行实例化后向整个系统提供一个访问它的全局方法。原创 2020-11-19 22:00:39 · 142 阅读 · 0 评论 -
观察者模式
一、观察者模式的概念观察者模式也称作监听模式,即观察和被观察的关系,比如你在烧开水时看它有没有开,你就是观察者,水就是被观察者。观察者模式是指:对象之间一对多的依赖关系,每当那个特定对象状态改变时,所有依赖于它的对象都会得到通知并被自动更新。观察者模式看似很模式,其实我们常见的发布-订阅模式、模型-视图模式、源、监听器模式、从属者模式等都属于观察者模式。观察者模式可以有任意多个观察者对象同时监听某一个对象。监听某个对象的观察者(Observer),被监听的对象叫做被观察者(Subject)。被观察者对原创 2020-11-20 00:12:55 · 204 阅读 · 0 评论 -
简单工厂模式
一、简单工厂模式的概念简单工厂模式(Simple Factory Pattern)也称为静态工厂模式,它是专门定义一个类,依据参数的不同,来负责创建其它类的实例,被创建的实例通常都具有共同的父类。之所以称作静态工厂模式,是因为面向对象语言中,通过将其定义成一个静态方法,方便用类名直接调用。简单工厂模式的常用代码结构:#ifndef SIMPLE_FACTORY_H#define SIMPLE_FACTORY_Hclass Product{public: Product();原创 2020-11-21 11:03:36 · 113 阅读 · 0 评论 -
工厂方法模式
一、工厂方法模式概念工厂方法模式是简单工厂模式的一个升级版本,是为了解决简单工厂模式中不符合开闭原则问题的。工厂方法模式是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。所谓工厂方法模式,是指定义一个用于创建对象的接口,让子类决定实例化哪一个类。简单来说:一个工厂只生产一种产品,想要生产啥产品找啥工厂工厂方法模式常用代码结构:#ifndef FACTORY_METHOD_H#define FACTORY_METHOD_H#includ原创 2020-11-21 12:15:08 · 131 阅读 · 0 评论 -
抽象工厂模式
一、抽象工厂模式概念简单工厂工厂模式可以通过传递不同的参数创建不同的对象,但是简单工厂模式不满足开闭原则,所以在此基础上推出了工厂方法模式;采用工厂–产品一对一原则,新增产品只需新增工厂即可,解决了开闭原则;但是后期产品会越来越多,建立的工厂也会越来越多,工厂变得凌乱而难以管理,而且每个工厂只能创建单一种类的产品,当需要生产一种全新的产品(不继承Product)时,发现工厂方法模式有点力不从心,所以在此基础上推出了抽象工厂模式;抽象工厂模式中的工厂虚基类中的接口对应于生产线,而生产线实际需要生产什么样的原创 2020-12-02 13:53:21 · 106 阅读 · 0 评论 -
状态模式
自然界所有事物都有自己的存在状态,比如水有固态、液态、气态,三种不同的心态有着完全不一样的外在特性,我们将事物所处的某一种形态称为状态。原创 2022-10-27 16:25:10 · 274 阅读 · 0 评论 -
适配器模式
技术只是一个工具,它是为业务服务的,不管系统设计的多么完美,都无法逃避新业务的发生,这就需要有一个“补救模式”----适配器模式,来完成我们设计的系统在生命周期内能够稳定、健壮地运行。原创 2022-10-27 14:39:40 · 97 阅读 · 0 评论 -
命令模式
一、什么是命令模式?在GOF的《设计模式:可复用面向对象软件的基础》一书中对命令模式是这样说的:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在OOP中,一切都是对象,将请求封装成对象,符合OOP的设计思想,当将客户的单个请求封装成对象以后,我们就可以对这个请求存储更多的信息,使请求拥有更多的能力;命令模式同样能够把请求发送者和接收者解耦,使得命令发送者不用去关心请求将以何种方式被处理。举例说明:我们在12306上,单击购票,这是原创 2021-05-07 17:19:03 · 120 阅读 · 0 评论 -
代理模式
也称为,作用就是找一个对象来替我们访问某个对象;意图:为其它对象提供一种代理以控制对这个对象的访问;代理模式就像我们生活中有些不方便自己直接出面处理的事情,然后找一个中间人替我们去处理;例如:我们来到一个新的城市,需要租房,但是你又不知道哪里有好的房源,所以你找到了中介,去帮你找好的房源;那么你就是下图中的RealSubject,中介就是Proxy,Request()就是租房。原创 2023-03-23 11:42:11 · 177 阅读 · 0 评论