
23种设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
大道化简
先后担任技术总监就职于多家世界500强企业,技术委员会成员,在PaaS平台及业务应用建设方面深耕多年。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA与模式学习笔记之关系的概念
<br />1.依赖关系:体现为局部变量,方法参数,静态方法的调用<br />2.关联关系:全局变量中对其他类的引用<br />3.聚合关系:强关联关系,是整体和个体之间的关系。例如:汽车和引擎<br />4.合成关系:比聚合更强的关联关系,代表整体的部分负责代表部分的对象的生命周期,合成 关系是不能共享的。例如:人和四肢。原创 2010-06-29 00:15:00 · 531 阅读 · 0 评论 -
JAVA与模式学习笔记之设计原则
1. 开闭原则(OPEN-CLOSED PRINCIPLE OCP):对扩展开放,对修改关闭。 方式:(1)通过抽象实现对修改的关闭 (2)通过继承实现对扩展的开放2.里氏代换原则(LISKOV Subsitution Principle LSP ):任何基类出现的地方,其子类一定 可以出现。3.依赖倒转原则(Dependency Inversion Principle DIP): 要依赖于抽象,不要依赖于实现4.接口隔离原则(Interface Segregati原创 2010-06-29 00:16:00 · 504 阅读 · 0 评论 -
JAVA与模式学习笔记之合成模式
1.合成模式的角色 (1) 抽象构件(Component):给参加组合的对象规定一个接口 (2) 树叶构件(Composite):代表参加组合的树叶对象 (3) 树枝构件: 代表参加组合的含有子对象的对象2.合成模式的两种方式 (1) 透明方式;在Component里面声明所有的用来管理子类的对象的方法。 优点:所有的构建类都有相同的接口,树叶类和合成类对象对象的区别在接口层次上消失了。客户端可以同等的对待所有的对象。 缺点: 树叶类和树枝类事实上是有区别的,树叶类原创 2010-06-29 00:19:00 · 491 阅读 · 0 评论 -
设计模式学习笔记--简单工厂模式
简单工厂模式是类的创建模式,又叫静态工厂方法模式。简单工厂模式是由一个工厂决定创建出哪一种产品的实例。一、优点和缺点1.优点:模式的核心是工厂类,工厂类包含特定的判断逻辑,决定在什么时候创建哪一个产品类的实例。而客户端则可以免除创建产品对象的责任,而仅仅是消费产品。实现了对责任的分割2. 缺点: (1)当产品类又复杂的多层次等级结构时,工厂类只有他自己,以不变应万变原创 2013-07-22 23:03:34 · 515 阅读 · 0 评论 -
设计模式学习笔记-工厂方法模式
工厂方法模式 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。首先,工厂方法模式中,核心工厂类不再负责产品的创建。而是将具体创建的工作分给了子类去做。这个核心类则摇身一变编程了一个抽象工厂角色。仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类应当实例化这种细节。这种进一步抽象化的结果,使这种工原创 2013-07-24 22:14:25 · 582 阅读 · 0 评论 -
设计模式学习笔记-抽象工厂模式
抽象工厂模式可以向客户端提供一个接口,使得客户端在不知道产品的具体类型的情况下,创建多个产品族中的产品对象,这就是抽象工厂的用意。在什么情况下使用抽象工厂模式?1.一个系统不应该依赖月产品类实例如何被创建、组合和表达的细节。这对于所有形态的工厂模式都是重要的。2.这个系统的产品应该有多于一个的产品族,而系统中☞消费其中某一族的产品。3.同属于一个产品族的产品原创 2013-07-24 22:23:48 · 609 阅读 · 0 评论 -
设计模式学习笔记-单例模式
单例模式确保一个类只有一个实例,并且自行实例化并向整个系统提供这个实例单例模式的特点:1.单例类必须确保只有一个对象2.单例类必须自己创建自己的唯一实例3.单例类必须给所有其他对象提供这一实例。单例类的使用场景:系统要求一个类只有一个实例的时候才使用单例模式。原创 2013-07-24 22:56:18 · 615 阅读 · 0 评论 -
常用设计模式的应用场景
单例模式 允许自由创建每个类没有实际意义,还有可能造成系统性能下降 优势:减少创建java实例带来的系统开销 便于系统跟踪某个实例的生命周期,实例状态等 2 工厂模式: 工厂模式又分简单工厂模式,抽象工厂模式 使用简单工厂模式的优势是:让对象的调用者和对象创建过程分离,当对象调用者需要对象时,直接向工厂请求即可。从而转载 2013-07-28 17:55:31 · 472 阅读 · 0 评论 -
单例模式的常见应用场景
1. Windows的Task Manager(任务管理器)2. windows的Recycle Bin(回收站),在整个系统运行过程中,回收站一直维护着仅有的一个实例。3. 网站的计数器,一般也是采用单例模式实现,由于同步的需要4. 应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加。原创 2014-01-23 22:15:35 · 1479 阅读 · 0 评论 -
多例模式应用场景举例
多例模式应用场景举例 多并发请求环境下,系统需要为每个客户端的独立请求提供单独服务的资源,但是系统总的开销是有限的,系统在并发量很大时也不可能为所有的并发请求同时提供相应的资源,否则不但系统资源消耗量大而且非常耗时。这时就可以考虑使用池的概念,也即是一种多例模式的实现。具体的应用场景,比如数据库连接池、EJB无状态会话Bean的实例池代码实现上一般是提供一个容器原创 2014-01-23 22:25:43 · 7130 阅读 · 0 评论 -
深入浅出基于Java的建造设计模式
深入浅出基于Java的建造设计模式 blog2005-01-20 10:18分享到:我要吐槽 一、引子 前几天陪朋友去装机店攒了一台电脑,看着装机工在那里熟练的装配着机器,不禁想起来了培训时讲到的建造模式。作为装机工,他们不用管你用的CPU是Intel还是AMD,也不管你的显卡是2000千大元还是白送的,都能三下五除二的装配在一起——一台PC就诞生了!当然对于客户转载 2014-01-24 21:37:47 · 570 阅读 · 0 评论 -
23种设计模式的总结
23种设计模式。模式分类 & 传送门 & 对比维度说明 设计原则: 设计模式(总纲) 创建型: 单例模式 简单工厂模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式结构型: 代理模式 适配器模式 装饰器模式 桥接模式 组合模式 享元模式 外观模式 行为型: 观察者模式 模板方法模式 命转载 2014-01-25 20:43:11 · 698 阅读 · 0 评论 -
Java设计模式之组合模式(Composite)
Java设计模式之组合模式(Composite)Composite模式定义: 将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. Composite模式理解: 想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Comp转载 2014-01-25 22:14:11 · 609 阅读 · 0 评论 -
门面(Facade)模式简介
门面(Facade)模式外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。医院的例子用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。首先病人必须先挂号,然后门转载 2014-01-26 21:50:52 · 599 阅读 · 0 评论 -
Java设计模式之虚拟代理模式
Java设计模式之虚拟代理模式虚拟代理模式(Virtual Proxy)是一种节省内存的技术,它建议创建那些占用大量内存或处理复杂的对象时,把创建这类对象推迟到使用它的时候。在特定的应用中,不同部分的功能由不同的对象组成,应用启动的时候,不会立即使用所有的对象。在这种情况下,虚拟代理模式建议推迟对象的创建直到应用程序需要它为止。对象被应用第一次引用时创建并且同一个实例可以被重用。这种方法优缺点转载 2014-02-11 19:17:46 · 985 阅读 · 1 评论 -
伸缩立方(Scale Cube)
在这个模型中,通过在负载均衡器之后运行多份拷贝来伸缩应用的方式叫做X轴伸缩。另外两种伸缩方式叫Y轴伸缩和Z轴伸缩。微服务架构是Y轴伸缩的,让我们也同时认识下X轴和Z轴伸缩。X轴伸缩X轴的伸缩,由负载均衡器后运行的多个拷贝构成。如果有N份拷贝,每份拷贝处理1/N的负载。这是个简单常用的伸缩应用的方式。这个方法的缺点是,由于每份拷贝潜在地访问所有数据,缓存需要更多内存才能更转载 2016-10-21 14:01:49 · 2701 阅读 · 0 评论