
真正理解设计模式
对设计模式进行全面和详细的理解,深入体会设计模式的内涵。注:供学习用,侵权删!
BoCong-Deng
翻过这座山,别人就能听到你的故事!
展开
-
设计模式:简单工厂模式
原本自己开发了各种web、移动应用,还开源了几个项目,觉得自己能力不错了,可最近在研究Android源码的时候才发现,自己某些方面的缺失。而这种缺失就是设计模式。起初对于各种设计模式都有过了解,但也只是略知大概的概念皮毛,所以在看源码的时候发现,就像是在看天书一般,令人难受,所以现在打算重头对各种设计模式整理一遍,当给自己敲个警钟---路还很长,自己还不够强。一、引现在先从简单工厂模式入手...原创 2019-01-04 12:30:58 · 449 阅读 · 0 评论 -
设计模式:外观模式
一、引这次要讲的这个模式其实在我们日常编写代码的过程中非常常见,在面向对象编程中,我们几乎无时无刻不在用它,它就是外观模式。在进入讲解之前,我们先来了解一个设计原则,这就是迪米特法则。迪米特法则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。迪米特法则其实和前面提到的依赖倒置原则有些类似,都...原创 2019-01-15 10:00:14 · 402 阅读 · 0 评论 -
设计模式:模板方法模式
一、引我们在日常的代码设计中,会遇到许多固定的逻辑操作,那么这个时候如果不进行一定的设计,就会出现冗余的逻辑重复,导致代码维护性不高,所以一般遇到这种情况,我们应该设法将这些固定的操作与可变的操作进行分离,每次修改只要变动可变操作即可。这就是这次要讲的模板方法模式。二、问题既然是模板方法,那我们引出的问题也是模板,如何设计一个问卷的情景操作。三、理解我们先来分析一下问题,问卷情...原创 2019-01-15 09:37:41 · 382 阅读 · 0 评论 -
设计模式:工厂方法模式
一、引工厂方法模式光从名字上就和简单工厂模式很相似,其实具体的含义和实现也很相似,只不过工厂方法模式将原本简单工厂模式中的工厂类进行了抽象,具体化了不同操作的工厂类。简单的说,就是依据封闭-开放原则,对简单工厂模式进行了修改。二、问题为了能够和简单工厂模式进行比较,这次的问题还是设计一个简单了计算程序。三、理解我们用简单工厂模式进行设计, 可以先转至我的另一篇博文,看看简单工厂...原创 2019-01-08 11:23:05 · 10697 阅读 · 0 评论 -
设计模式:代理模式
一、理解代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。从模式的命名我们就可以意识到,应该是通过一个类代替另一个类进行相关的操作,类似于使用者的意思。“你授权给我使用你的功能,我可以在这个地方代替你行事相应的功能”,值得注意的是,代理行使的功能其实就是功能所有者的功能。以下是代理模式的功能图:那就有人会问,我既然能使用某各类的功能,我为什么要多此一举,找一个代理类...原创 2019-01-08 10:29:43 · 480 阅读 · 0 评论 -
设计模式:原型模式
一、引我们在日常的开发中,可能会遇到需要重复创建相同或者类似的对象,这个时候如果使用实例化(new),那么我们需要多少个对象,就需要实例化多少次,这不仅会导致代码重复的灾难,还难以对已实例化的对象进行修改,那么这个时候就需要一种设计思想,在需要对象的时候,尽量避免实例化,优化程序结构,且方便我们进行修改,这种模式就是原型模式,可以理解为利用原型进行复制。二、问题有一个简历的类(Resu...原创 2019-01-12 19:56:06 · 419 阅读 · 0 评论 -
设计模式:装饰模式
一、引面向对象编程就是一个不断的抽象的过程,经过前面几个模式和原则的认识,相信会对面向对象有了进一步的理解,在编写代码中我会需要时刻提醒自己对需求进行合理的抽象。不同的模式是为了解决不同的情况,但终究是依靠面向对象编程中的几个特性封装、继承、多态,都是为了达到可维护、可扩展、可复用、灵活性好,而这一次将要提到的装饰模式(Decorator),就是针对需要不断在已有的功能职责中添加新的职责的情况...原创 2019-01-07 13:06:20 · 744 阅读 · 0 评论 -
设计模式:单一职责原则、开放-封闭原则以及依赖倒置原则
在设计代码中,我们有许多可以依照的设计模式,让我把整个项目的逻辑结构变得清晰易于维护。当然,在设计模式中我们不只有各种模式,还有许多设计的原则,虽然他们不是代码架构的模板,但是这些原则却时刻提醒我们提高代码质量和防止未来麻烦。这次我就将单一职责原则、开放-封闭原则以及依赖倒转原则进行解释。一、单一职责原则专业解释:单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。如果一个...原创 2019-01-06 16:23:12 · 7292 阅读 · 2 评论 -
设计模式:策略模式
策略模式定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式是一种定义一系列算法的方法,从概念来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少各种算法类与使用算法类之间的耦合。一、引我们必须要真正理解模式的思路,才能在不同情况下选择合适的模式。我们使用模式的目的就是是代码层次思路清晰,并且尽...原创 2019-01-05 11:44:41 · 489 阅读 · 0 评论 -
设计模式:建造者模式及其与工厂模式的区别
一、引我们在设计实现某些需求的时候,会遇到这样的一种情况,即在实现一类组件,这类组件有固定的执行顺序和固定的执行方法,只是在执行方法中的业务逻辑根据不同的需求变化。就像是生产人偶,这些人偶有两脚、两手、头、身体,在生产过程中,这些部位是一定要的且生产这些部位的顺序一致,只不过头有大头和小头,身体有胖和瘦的区别,那么这个时候,就可以使用建造者模式。二、问题以上面提到的生产人偶为问题,应该...原创 2019-01-15 11:04:05 · 13961 阅读 · 0 评论