
设计模式
文章平均质量分 74
高、远
唯有刻苦是真理
展开
-
设计模式——模板方法模式
【1】模板方法模式概述在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。【1.1】定义:定义一个操作中的.原创 2021-03-10 17:14:49 · 97 阅读 · 0 评论 -
设计模式——组合模式
【1】概述:组合模式用于整体与部分的结构,当整体与部分有相似的结构,在操作时可以被一致对待时,就可以使用组合模式。例如:文件夹和子文件夹的关系:文件夹中可以存放文件,也可以新建文件夹,子文件夹也一样。·总公司子公司的关系:总公司可以设立部门,也可以设立分公司,子公司也一样。树枝和分树枝的关系:树枝可以长出叶子,也可以长出树枝,分树枝也一样。在这些关系中,虽然整体包含了部分,但无论整体或部分,都具有一致的行为。【1.1】定义:又名部分整体模式,是用于把一组相似的对象当作一个单一的对象。.原创 2021-03-10 17:09:12 · 235 阅读 · 0 评论 -
设计模式——外观模式
【1】概述有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的收益归持有者所有,管理机构收取一定比例的托管管理费用。这就有点类似外观模式。【1.1】定义: 又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对.原创 2021-03-10 16:56:32 · 91 阅读 · 0 评论 -
设计模式——桥接模式
【1】概述:现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系:我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一个维度上新增一个具体实现都要增加多个子类。为了更加灵活的设计系统,我们此时可以考虑使用桥接模式。形状和颜色,都是图形的两个属性。他们两者的关系是平等的,所以不属于继承关系。更好的的实现方式是:将形状.原创 2021-03-10 16:46:28 · 128 阅读 · 0 评论 -
设计模式的UML类图大全(会画类图就差不多理解了)
创建型模式简单工厂模式类图:工厂方法模式类图:抽象工厂模式:个人理解和工厂方法模式最大的不同就是,一个工厂可以生产同族产品,但不是同一类的产品。这是工厂方法模式做不到的建造者模式:代理模式:适配器模式:1.对象适配器模式:2.类适配器模式:装饰者模式:后续继续更新,请期待。。。...原创 2021-03-10 13:58:43 · 326 阅读 · 0 评论 -
设计模式——适配器模式(类适配器和对象适配器)
适配器模式概述:如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转换为5v的电压),读卡器等,其实就是使用到了适配器模式。定义: 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式的结构:适配器模.原创 2021-03-09 19:38:25 · 797 阅读 · 0 评论 -
设计模式——代理模式(详解,JDK代理原理源码分析)
概述(什么是代理模式?为什么使用代理模式?)由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时动态生成。动态代理又有JDK代理和CGLib代理两种。下图是实际生活中的代理模式的体现:代理模式的结构:代理(Proxy)模式分为三种角色:代理角色相.原创 2021-03-09 18:49:00 · 185 阅读 · 2 评论 -
工厂方法模式VS建造者模式 & 抽象工厂模式VS建造者模式
学完创建型模式后,感觉有两个有一点混。废话不多说哦,直接上图:视频资源:了解更多原创 2021-03-08 21:45:05 · 195 阅读 · 0 评论 -
设计模式——建造者模式(使用director指挥者和不适用director结合代码分析)
【1】什么是建造者模式?建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。将一个复杂的构建与其表示(本身)相分离,使得同样的构建过程可以创建不同的表示。现在建造者模式主要用来通过链式调用生成不同的配置。【2】为什么原创 2021-03-08 20:49:33 · 1663 阅读 · 1 评论 -
工厂模式——三种工厂模式对比分析
简单工厂模式总而言之,简单工厂模式就是让一个工厂类承担构建所有对象的职责。调用者需要什么产品,让工厂生产出来即可。它的弊端也显而易见:一是如果需要生产的产品过多,此模式会导致工厂类过于庞大,承担过多的职责,变成超级类。当苹果生产过程需要修改时,要来修改此工厂。梨子生产过程需要修改时,也要来修改此工厂。也就是说这个类不止一个引起修改的原因。违背了单一职责原则。二是当要生产新的产品时,必须在工厂类中添加新的分支。而开闭原则告诉我们:类应该对修改封闭。我们希望在添加新功能时,只需增加新的类,而不是修改既有原创 2021-03-08 20:01:26 · 1240 阅读 · 0 评论 -
设计模式——简单工厂模式
什么是简单工厂模式?简单工厂模式属于创建型模式又叫做静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。 简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。大概了解了简单工厂模式后,我们来看看,为什么我们会需要简单工厂模式,什么情况下我们会需要用到简单工厂模式我们为什么需要用到简单工厂模式,什么时候需要用到简单工厂模式..原创 2021-03-08 19:53:21 · 99 阅读 · 0 评论 -
设计模式——原型设计模式(浅拷贝+深拷贝)
什么是原型设计模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。说白了原型模式就是通过拷贝的方式创建你要的对象,要拷贝得有个前提就是得先有一个模型。案例引出(为什么需要原型模式?& 什么时候需要?)举个例子,比如有一天,周杰伦到奶茶店点了一份不加冰的原味奶茶,你说我是周杰伦的忠实粉,我也要一份跟周杰伦一样的。用程序表示如下:奶茶类:public class MilkTea { public String type; public bo..原创 2021-03-08 10:22:08 · 518 阅读 · 1 评论 -
深入理解 设计模式——单例设计模式(Java+kotlin)
什么是单例设计模式?为什么要使用单例设计模式?确保某一个类在整个项目中只有一个实例,并且自行创建实例化对象,并向整个系统提供这个实例。没有必要去创建多个对象,节约内存资源创建主体流程1.私有化所有的构造方法(不通过外部创建该类的对象)2.给外部提供一个获得该类对象的方法(类方法 static修饰,因为此时没有该类的对象,不能通过对象来调用此方法)3.必须创建一个私有的静态成员变量来保存当前唯一的对象(使用静态方法只能访问静态的变量)4.创建类的一个对象单例设计模式的8种..原创 2021-03-07 10:58:35 · 162 阅读 · 0 评论 -
设计模式之——七大原则
单一职责原则:对于一个类来说,应该只负责一个职责。如果负责两个职责,职责1需要改变这个类,从而影响到职责2,造成职责2运行错误,所以需要将这个类的粒度分解为A1,A2。例如:解析:可以看到飞机在公路上运行通常是不对的(起飞降落除外),vehicle这个类就违反了单一职责原则。单一职责原则的作用:降低类的复杂度(一个类之做一件事,变得很简单)提高类的可读性,可维护性(将来如果,不要增加功能之类的,不会很麻烦,只需要在类中增加相应的方法即可)降低代码变更引起的风险(将来如果代码要变原创 2021-03-04 20:25:49 · 119 阅读 · 3 评论 -
设计模式前言
是什么?设计模式是什么?设计模式(DesignPatterns)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。为什么?我们为什么使用设计模式?使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式原创 2021-03-04 19:58:50 · 92 阅读 · 1 评论