设计模式
良月柒
一个不羁的码农,终生学习者。
展开
-
菜鸟之路:设计模式入门篇——简单工厂模式
简单工厂模式1.什么是工厂?用一个单独的类来做这个类创造实例的过程,这就是工厂。2.它解决了那些问题?简单工厂模式解决了对象的创建问题。3.什么时候去使用简单工厂模式?用于已知某些条件后,对类的选择,而这些类都是同一父类的子类。 计算器示例:1.抽象一个基类(JiSuan),提供一个计算方法;JiSuan类:/** * 作者:LKP * 时间:201...原创 2018-07-12 20:43:12 · 3476 阅读 · 1 评论 -
菜鸟之路:23种设计模式之——建造者模式
什么是建造者模式?将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。如果我们用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。什么时候使用建造者模式呢?主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是问题的,但对象内部的构建通常面临着复杂的变化。 Builder是什么呢?它...原创 2018-11-05 20:23:30 · 4928 阅读 · 0 评论 -
从零开始单排学设计模式「UML类图」定级赛
阅读本文大概需要 3.5 分钟。本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧!学而时习之,不亦说乎。从零开始单排学设计模式的国服排位之旅,今天正式开启!目前段位:定级赛这篇文章来总结下UML类图,本来不打算讲UML类图的,因为我在...原创 2019-02-01 15:29:23 · 176 阅读 · 0 评论 -
从零开始单排学设计模式「简单工厂设计模式」黑铁 III
阅读本文大概需要 2 分钟。 本篇是设计模式系列的第二篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧! 学而时习之,不亦说乎。 推荐阅读:从零开始单排学设计模式「UML类图」定级赛 目前段位:黑铁 III Let's Go!...原创 2019-02-14 17:03:16 · 155 阅读 · 0 评论 -
从零开始单排学设计模式「策略模式」黑铁 II
阅读本文大概需要 1.7 分钟。 本篇是设计模式系列的第三篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧! 学而时习之,不亦说乎。推荐阅读:从零开始单排学设计模式「UML类图」定级赛从零开始单排学设计模式「简单工厂设计模式」黑铁III 目前段位:...原创 2019-02-15 10:30:04 · 207 阅读 · 0 评论 -
从零开始单排学设计模式「装饰模式」黑铁 I
阅读本文大概需要 3.6 分钟。 本篇是设计模式系列的第四篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。 所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧! 学而时习之,不亦说乎。 推荐阅读:从零开始单排学设计模式「UML类图」定级赛从零开始单排学设计模式「简单工厂设计模式」黑铁 III...原创 2019-02-16 22:44:14 · 158 阅读 · 0 评论 -
从零开始单排学设计模式「单一职责原则」黑铁 - 青铜 晋级赛
阅读本文大概需要 3.7 分钟。本篇是设计模式系列的第五篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧!学而时习之,不亦说乎。推荐阅读:从零开始单排学设计模式「简单工厂设计模式」黑铁 III从零开始单排学设计模式「策略模式」黑铁 II...原创 2019-03-05 15:54:31 · 254 阅读 · 0 评论 -
从零开始单排学设计模式「代理模式」青铜 III
阅读本文大概需要 3.2 分钟。本篇是设计模式系列的第六篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧!学而时习之,不亦说乎。推荐阅读:从零开始单排学设计模式「策略模式」黑铁 II从零开始单排学设计模式「装饰模式」黑铁 I...原创 2019-03-05 15:55:23 · 214 阅读 · 0 评论 -
从零开始单排学设计模式「工厂方法模式」青铜 II
阅读本文大概需要 2 分钟。本篇是设计模式系列的第七篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧!学而时习之,不亦说乎。推荐阅读:从零开始单排学设计模式「策略模式」黑铁 II从零开始单排学设计模式「装饰模式」黑铁 I...原创 2019-03-05 15:55:56 · 212 阅读 · 0 评论 -
从零开始单排学设计模式「原型模式」青铜 I
阅读本文大概需要 3 分钟。本篇是设计模式系列的第八篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧!学而时习之,不亦说乎。推荐阅读:从零开始单排学设计模式「装饰模式」黑铁 I目前段位:青铜 ILet's...原创 2019-03-05 15:57:06 · 258 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——观察者模式
什么是观察模式呢?观察者模式定义了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。它的特点是什么呢?它将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维护一致性而使各类精密耦合,这样会给维护、扩展和重用都带来不便。适合使用在什么场合?...原创 2018-11-09 20:28:11 · 464 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——外观模式
什么是外观模式?为子系统中的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易地使用。什么时候使用外观模式?首先,在设计初期阶段,应该要有意思的将不同的两个层分离。层与层之间建立外观Facade。其次,在开发阶段,子系统旺旺因为不断地重构烟花而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。第三,在维护一个遗留...原创 2018-08-15 19:21:01 · 246 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——装饰模式
什么是装饰模式?动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。什么时候去使用它?当系统需要新功能的时候,是向旧的类中添加新的代码。这些新加的代码通常装饰了原有类的核心职责或主要行为。它的优点体现在哪里?把类中的装饰功能从类中搬移去除,这样可以简化原有的类。有效地把类的核心职责和装饰功能区分开了。而且可以去除相关类中重复的装饰逻辑。 装饰...原创 2018-08-02 16:30:19 · 313 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——策略模式
什么是策略模式?它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。什么时候去使用策略模式?策略模式就是用来封装算法的,但是在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。适用的场景?1、如果在一个系统里面有许多类,它们之间的区...原创 2018-07-24 20:53:17 · 308 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——工厂方法模式
有了简单工厂模式,为什么还需要工厂方法模式?简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。如果简单工厂模式需要改动,比如新增加一个运算,那么我们一定要给运算工厂类的方法里面加“Case”的分支条件的,修改原来的类。这样我们不但对扩展开放了,对修改也开放了,违背了开发-封闭原则的。什么是工厂方法模式?...原创 2018-07-25 20:01:13 · 724 阅读 · 2 评论 -
菜鸟之路:23种设计模式之——抽象工厂模式
什么是抽象工厂模式?提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式有哪些优点?1、最大的好处便是易于交换产品系列,由于具体工厂类,在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需要改变具体工厂即可使用不同产品配置。2、它让具体的创建实例过程与客户端分离,客户端是通过它们的抽象接口操作实例,产品的具体类名也...原创 2018-07-25 20:52:46 · 470 阅读 · 0 评论 -
菜鸟之路:23种设计模式+6大原则 概述
第一章>>>>>面向对象编程:通过封装,继承,多态把程序的耦合度降低,将重复的代码抽离出来,容易扩展,维护,复用。简单工厂模式,工厂(Factory):用一个单独的类来做这个类创造实例的过程,这就是工厂。简单工厂模式解决的是对象的创建问题。什么时候用它:都可以用于已知某些条件后,对类的选择,而这些类都是同一父类的子类。UML类图解析:继承关系用...原创 2018-07-26 09:52:43 · 604 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——代理模式
什么是代理模式?为其他对象提供一种代理以控制对这个对象的访问。它都用在什么场合呢?1、远程代理:也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在不同地址空间的事实。2、虚拟代理:是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。3、安全代理:用来控制真实对象访问时的权限。4、智能指引,是指当调用真实的对象时,代理处理另外一些事。...原创 2018-07-26 20:00:13 · 555 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——单例模式
什么是单例模式?保证一个类仅有一个实例,并提供一个访问它的全局访问点。什么时候用到它呢?通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好但的方法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。单例模式有什么好处呢?1、单例模式可以保证唯一的实例。2、单例模式因为Singleto...原创 2018-07-26 20:31:02 · 288 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——原型模式
什么是原型模式?用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是一个对象在创建另一个可定制的对象,而且不需要指定任何创建的细节。Java提供了Coneable接口,其中有一个唯一方法Clone(),实现这个接口就可以完成原型模式了。什么时候使用它呢?一般在初始化的信息不发生变化的情况下,克隆是最好的办法。既隐藏了对象创建的细节,又对性能是大大的提高。...原创 2018-07-27 20:42:33 · 2945 阅读 · 0 评论 -
菜鸟之路:23种设计模式之——模板方法模式
什么是模板方法模式?定义一个操作中的算法的骨架,而将一些个步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。它的应用场景在哪里呢?当我们要完成某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现肯不同时,我们通常考虑用模板方法模式来处理。它的特点有哪些?模板方法模式是通过把不变行为搬移到超类,去除子类中重复代码来体现...原创 2018-07-27 20:56:49 · 865 阅读 · 0 评论 -
菜鸟之路:六大原则之——单一职责原则
什么是单一职责?就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职...原创 2018-08-06 20:03:37 · 180 阅读 · 0 评论 -
从零开始单排学设计模式「开发-封闭原则」青铜 - 白银 晋级赛
阅读本文大概需要 3 分钟。本篇是设计模式系列的第九篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统。所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧!学而时习之,不亦说乎。推荐阅读:从零开始单排学设计模式「装饰模式」黑铁 I目前段位:青铜 I-白银III 晋级赛...原创 2019-03-05 16:59:44 · 195 阅读 · 0 评论