设计模式
意识很重要
legendaryhaha
legendaryhaha的博客
展开
-
设计模式之行为模式(二)
调停者当我们的模块中,对象与对象之间涉及到直接交互时(相互引用),我们可以将交互的信息封装在一个独立的对象中,这个对象又称为调停者。面向对象的设计往往避免不了一组对象的相互交互,我需要你的信息,我也可以提供给你需要的的信息:于是,当多个对象...原创 2019-04-15 18:14:21 · 167 阅读 · 0 评论 -
设计模式之基本模式
设计模式进阶篇1、接口2、抽象父类3、私有方法4、访问者方法5、常数管理器6、不可变对象7、监视器1、接口Q:什么是接口模式?A:在提供各种各样服务的对象中,总会存在一些提供相同(或者相似)的服务,将这些共同的服务抽象为一个接口,具体实现可以由实现该接口的类去自定义。如下例子:在设计一个计算公司员工工资的系统的时候,有如下因素需要我们去考虑:(1)员工有多个类别(2)不同类别可能不一样的...原创 2019-02-26 18:00:16 · 858 阅读 · 0 评论 -
设计模式之创建模式(一)
设计模式进阶篇工厂方法单例模式抽象工厂构造者原型工厂方法采用OO(面向对象)进行程序开发,类与类之间避免不了通过创建对方的对象进行联系,这种设计在带来开发上的便捷时也让不同模块的类有着藕断丝连的关系,即模块间的耦合度高。如图(来自Java软件体系结构设计模式标准指南):在类层次结构中,SubClass_2和SubClass_1都继承于ParentClass。而在可户中App_object...原创 2019-03-04 16:18:33 · 182 阅读 · 0 评论 -
设计模式之创建模式(二)
设计模式进阶篇抽象工厂构造者原型抽象工厂构造者原型原创 2019-03-05 09:48:17 · 251 阅读 · 0 评论 -
设计模式之集合模式
设计模式进阶篇迭代子合成享元访问者迭代子首先,我们可以了解一下什么叫容器:它可以简单地定义为一些对象的集合,容器中的对象也可以是容器。而迭代子模式其实就是允许客户对象以一致的方式访问容器中的内容,而不需要知道这些内容在容器内部是如何表示的。以Java为例子,它的集合就大量采用了这种模式,譬如:ArrayList的源码中,就申明了一个内部类Itr并实现了Iterator接口,并通过iterat...原创 2019-03-10 11:34:28 · 1354 阅读 · 0 评论 -
设计模式之结构模式(一)
设计模式进阶篇前言装饰器适配器责任链外观(门面模式)代理虚代理桥接审计代理聚合强制器显示对象释放对象缓存器前言在Java体系结构与设计模式一书中,是这样描述结构模式的:把责任委托给其他类的对象,从而引入一种耦合度低的分层体系结构。这种结构带来的好处就是(1)方便对象间的通信,比如,当某个对象以通常的方式无法访问,或因接口不兼容导致某个对象不可用时。(2)另外,结构模式提供了组织聚合对象的方式...原创 2019-03-24 20:30:37 · 231 阅读 · 0 评论 -
设计模式之结构模式(二)
外观(门面模式)代理虚代理桥接审计代理聚合强制器显示对象释放对象缓存器原创 2019-04-03 20:47:10 · 156 阅读 · 0 评论 -
设计模式之结构模式(三)
代理模式定义静态代理动态代理Cglib(code generation library)代理小结代理的分类设计模式之结构模式(二)定义Proxy(代理),顾名思义,代替客户对象和目标对象打交道,这里可能有人会疑问这跟装饰器模式有啥区别,装饰器也是可以代替客户对象访问目标对象的。确实如此,但是装饰器强调更多是拓展功能上的设计,而代理强调更多是对 对象的控制,而且这种对象往往是不能直接可得的...原创 2019-04-04 10:55:06 · 155 阅读 · 0 评论 -
设计模式之结构模式(四)
桥接桥接和装饰器模式的比较设计模式之结构模式(三)桥接在前面的设计模式中,我们知道,当不知客户调用哪些具体的产品时,我们可以将这些产品的共同特征抽象为接口或者抽象类,让客户端依赖这些抽象的东西。可是,如果生产产品的产家都不知道客户端会以一种怎样的方式来调用它,那么又应该如何解决呢?这个时候我们可以采用桥接模式进行程序设计。举个例子,譬如我们的JDBC,它的设计思想体现的就是桥接模式(宏观...原创 2019-04-06 17:26:09 · 129 阅读 · 0 评论 -
设计模式之行为模式(一)
命令模式命令模式:将请求封住成对象,通过对象来实现对请求的控制(排队、顺序执行和取消)模式无非就是让模块间能够解耦,让程序的复用性更强,命令模式也不例外,它是解决代表客户发送请求的调用者和提供服务的接受者之间的耦合关系的。譬如:我们去一家餐厅吃放,我们点菜,服务员将菜单传递给厨师,这个流程中,我们相当于客户端client,点菜相当于发送请求,服务员相当于调用者invoke,根据请求调用相...原创 2019-04-13 11:15:47 · 2961 阅读 · 0 评论 -
设计模式入坑篇
设计模式入坑篇定义注意区别软件框架小结定义一个已被记录的最佳解决方案,并成功应用在许多案例中,目的是解决了在某种特定情境中重复发生的某个问题。注意一个现实的系统中总是由多个模块所组成,不同的模块可能应用不同的设计模式,其他模块的设计模式在该模块中可能无法适用。即:设计模式是在某种特定上下文中,针对一个软件生命周期中出现的问题而给出的多次适用的解决方案。它的根本目标是:(1)用来帮...原创 2019-02-25 21:21:28 · 242 阅读 · 0 评论