软件设计
文章平均质量分 87
Simple_ R
这个作者很懒,什么都没留下…
展开
-
每天一个设计模式系列博文总目录(24种;带助记词)
【助记词】原抽建工单;想呆室外,过桥组装;责令解中谍,观测状被模仿;原创 2022-08-18 09:19:07 · 289 阅读 · 1 评论 -
每天一个设计模式之备忘录模式(Memento Pattern)
顾名思义,备忘录就是保存一个状态,到需要的时候可以恢复到某一时刻的状态。原创 2022-08-16 18:36:53 · 295 阅读 · 0 评论 -
每天一个设计模式之解释器模式(Interpreter Pattern)
这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。原创 2022-08-16 17:52:04 · 355 阅读 · 0 评论 -
每天一个设计模式之命令模式(Command Pattern)
命令模式将请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。原创 2022-08-16 16:09:57 · 205 阅读 · 0 评论 -
每天一个设计模式之访问者模式(Visitor Pattern)
设计模式有23种之多,要想记住这二十多种模式的确不太容易,但是如果将模式的名字与典型的场景结合起来可能会更容易记忆。对于访问者模式,一个典型的例子就是。访问者模式的意图是将易变的操作和稳定的数据结构分离开。文本典型的例子中,一个地方的景区基本上是稳定不变的,而对不同游客所做的优惠活动则会有很多不同的类型,比如学生游客,教师游客,老年游客,外国游客,抗疫志愿者游客等等。......原创 2022-08-16 10:03:36 · 218 阅读 · 0 评论 -
每天一个设计模式之中介者模式(Mediator Pattern)
中介者模式提供一个中间类,用于处理其他不同类之间的通信,其他类对象之间不需要显示地相互引用,从而使其松散耦合。典型的例子——星形网络。原创 2022-08-16 07:23:41 · 207 阅读 · 0 评论 -
每天一个设计模式之模板方法模式(Template Method Pattern)
所谓的模板模式就是基类(抽象类)提供出定义好的一个模板(空实现+默认实现),子类按照模板封装好的顺序去填充模板内方法的实现。原创 2022-08-16 06:10:43 · 268 阅读 · 0 评论 -
每天一个设计模式之状态模式(State Pattern)
状态模式适用于行为随状态改变而改变的场景,可以替换掉一个系统中依据内部状态而添加的条件、分支语句。原创 2022-08-15 16:33:05 · 242 阅读 · 0 评论 -
每天一个设计模式之策略模式(Strategy Pattern)
策略模式的适用场景是,当一个系统中只有算法策略变化,而其他都不变,这时候应当将算法隔离开,策略模式就是解决这类问题的模式。原创 2022-08-15 15:12:13 · 268 阅读 · 0 评论 -
每天一个设计模式之迭代器模式(Iterator Pattern)
每天一个设计模式之迭代器模式(Iterator Pattern)原创 2022-08-15 11:45:23 · 205 阅读 · 0 评论 -
每天一个设计模式之责任链模式(Chain of Responsibility Pattern)
为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。......原创 2022-08-15 10:43:30 · 227 阅读 · 0 评论 -
每天一个设计模式之观察者模式+发布订阅模式(Observer Pattern)
观察者模式定义了一套机制,可以实现一对多的关系,当“一”(被观察者)的状态发生了变化,会通知“多”个(观察者),这是行为型模式。原创 2022-08-14 13:49:35 · 330 阅读 · 0 评论 -
每天一个设计模式之过滤器模式(Filter/Criteria Pattern)
过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种行为型设计模式。这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。原创 2022-08-14 10:59:05 · 844 阅读 · 0 评论 -
每天一个设计模式之享元模式(Flyweight Pattern)
享元是共享对象的意思,用来解决重复对象的内存浪费的问题。缓冲池就是为了共享对象而出现的一种技术,常见的使用池技术的场景有String常量池、数据库连接池、缓冲池等。原创 2022-08-14 08:55:44 · 288 阅读 · 0 评论 -
每天一个设计模式之外观模式(Facade Pattern)
外观模式给多个复杂子系统提供一个统一的界面,使得用户对子系统的使用更简便。用户故事:家庭影院中有一套智能设备,每个设备都有若干个操作方法,用户希望通过一个手机APP经过简单的几个按键就对所有设备执行启动、关闭等操作。.........原创 2022-08-11 22:10:27 · 233 阅读 · 0 评论 -
每天一个设计模式之桥接模式
super(c);super(c);} }桥接模式的优点: 1、抽象和实现的分离。2、优秀的扩展能力。3、实现细节对客户透明。这个模式可以实现两个变化维度(形状、颜色)随意地扩展、随意地组合,降低了不同部件之间的耦合性,提高了代码的扩展性。......原创 2022-08-11 18:23:34 · 265 阅读 · 0 评论 -
每天一个设计模式之适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,它结合了两个独立接口的功能,将另一个不兼容的接口转化为可接收的接口,是一种行为型模式。原创 2022-08-11 15:19:20 · 247 阅读 · 0 评论 -
每天一个设计模式之装饰器模式
装饰器模式(Decorator Pattern),是一种行为型模式。该模式的目的是给对象动态地添加新特性。现实中的场景如,给咖啡添加调味品(牛奶,糖之类),给房间添加各种装饰物等等。原创 2022-08-11 11:15:35 · 454 阅读 · 0 评论 -
每天一个设计模式之组合模式
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。............原创 2022-08-11 09:53:54 · 230 阅读 · 0 评论 -
每天一个设计模式之代理模式(静态代理、动态代理)
代理模式是一种行为型模式,这个模式的意图是为其他对象提供一种代理以控制对原始对象的访问。为何需要代理?因为有时候直接访问原始对象会带来问题,比如,要访问的对象在远程的机器上,或者某些操作需要安全控制。比如下面这个Document类,它的访问没有任何安全控制,谁都可以执行它的view和edit方法,在现实中这是不合理的,应当对文档加入访问权限的控制。............原创 2022-08-10 17:20:07 · 199 阅读 · 0 评论 -
每天一个设计模式之工厂模式(无工厂、简单工厂、工厂方法、抽象工厂)
工厂模式属于创建型模式,通常所说的工厂模式指工厂方法模式,而简单工厂(或者说静态工厂)不属于GoF设计模式。本文从无工厂模式谈起,讲解为何演化出一系列的工厂模式。原创 2022-08-10 11:04:10 · 291 阅读 · 0 评论 -
每天一个设计模式之Builder模式
Builder模式也是一种创建型模式,它主要适用于创建具有较多属性的对象,有些属性是可选的,有些是必选的。拿电脑攒机来举例,CPU、硬盘、内存条、主板等部件是必须具备的,而显示器、键盘、鼠标等不一定需要(比如服务器),这样的场景非常适合使用Builder模式来创建对象。......原创 2022-08-09 18:49:58 · 460 阅读 · 0 评论 -
每天一个设计模式之原型模式
原型模式属于5种创建型的一种,顾名思义,它是以某个对象为原型构造出与原型对象一模一样的“复制品”。这种对象创建模式可类比孙悟空拔一根毫毛吹出十万个与自己一样的美猴王。很多编程语言都提供了一种clone机制,可以快捷地实现出原型模式。......原创 2022-08-09 17:10:31 · 256 阅读 · 0 评论 -
每天一个设计模式之单例模式(六种写法)
每天学会一个设计模式,让你的代码优雅起来。本篇介绍单例模式6种写法,从简单到复杂,从缺陷到完善,尽量cover所有面试点。原创 2022-08-08 13:06:53 · 300 阅读 · 0 评论 -
设计模式之创建型(2)——工厂模式
工厂模式的三种变种:简单工厂模式(也称静态工厂模式),工厂方法模式,抽象工厂模式一,静态工厂模式定义:通过专门定义一个工厂类负责创建其他类的实例,被创建的实例具有共同的父类。三种角色:工厂角色(SimpleFactory),负责创建所有类的内部逻辑。 抽象产品角色(IProduct),工厂角色所创建的所有对象的父类,这里所说的父类可以时接口也可以是抽象类,它负责描述所有实例所共有...原创 2019-01-12 19:33:33 · 202 阅读 · 0 评论 -
设计模式之创建型(1)——单例模式
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。三种写法:(1)懒汉式public class SingletonLazy { private static SingletonLazy instance = null; private SingletonLazy () {} public static SingletonLazy getInsta...原创 2019-01-12 17:58:15 · 144 阅读 · 0 评论 -
面向对象设计六大原则
一,单一职责原则二,开放封闭原则定义:对扩展开发,对修改关闭。既软件实体应在不修改原有代码的情况下进行扩展。实现:抽象化。典型案例:用一个抽象类代替switch...case三,里氏替换原则定义:子类型必须能够替换它们的基类型。 四,依赖倒置原则定义:要依赖于抽象,不要依赖于具体。客户端依赖于抽象耦合。特点:针对接口编程,不针对实现编程。好处:...原创 2019-01-12 16:25:27 · 222 阅读 · 0 评论