设计模式
arthur.dy.lee
这个作者很懒,什么都没留下…
展开
-
设计模式简单汇总
4.3、设计模式4.3.1 设计模式6准则:solid单一职责原则(Single Responsibility Principle,SRP)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。简单地说,就是保持单纯,别想那么多,做好一件事就好了。反过来,如果一个类承担的职责过多,就等于把这些职责耦合在一起开闭原则(Open Close Principle)对修改关闭,对扩展开放里氏替换原理(Liskov Substitution Principle)子类原创 2020-08-04 16:24:56 · 186 阅读 · 0 评论 -
享元模式 - 结构型模式
享元模式:运用共享技术有效地支持大量细粒度的对象。 The intent of this pattern is to use sharing to support a large number of objects that have part of their internal state in common where the other part of state can vary.原创 2015-07-15 17:54:11 · 1282 阅读 · 0 评论 -
策略模式 - 行为模式
策略模式: 定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。也称为政策模式(Policy)。Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.原创 2015-07-15 18:31:06 · 1248 阅读 · 0 评论 -
命令模式 - 行为模式
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤消的操作。命令模式又称为动作(Action)模式或事务(Transaction)模式。encapsulate a request in an object allows the parameterization of clients with different requests allows saving the requests in a queue原创 2015-07-18 23:40:31 · 866 阅读 · 0 评论 -
中介者模式 - 行为模式
中介者模式:定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互。 Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary th原创 2015-07-21 20:25:19 · 783 阅读 · 0 评论 -
解释器模式 - 行为模式
解释器模式: 给定一个语言,定义它的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句子。Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language. Map a domain to a language, the language to a原创 2015-07-21 21:02:40 · 808 阅读 · 0 评论 -
空对象模式 - 行为模式
空对象模式: 提供一个对象,作为一个缺少类型对象的代理。Provide an object as a surrogate for the lack of an object of a given type.原创 2015-07-21 21:24:31 · 1249 阅读 · 0 评论 -
装饰者模式 - 结构型模式
装饰者模式 :动态地将责任附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的替代方案。 The intent of this pattern is to add additional responsibilities dynamically to an object.原创 2015-03-03 15:33:16 · 1203 阅读 · 0 评论 -
代理模式 - 结构型模式
代理模式:对其他对象提供一种代理以控制对这个对象的访问。(Provide a surrogate or placeholder for another object to control access to it)。代理模式也叫做委托模式。原创 2015-02-24 20:38:35 · 815 阅读 · 0 评论 -
模板方法 - 行为模式
模板方法Gof的定义是:在一个方法里定义算法的骨架,将一些步骤延迟到其子类。Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without letting them to change the algorithm's structur原创 2015-07-15 23:26:15 · 742 阅读 · 0 评论 -
原型模式 - 创建者模式
原型模式是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的.浅拷贝: 对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象. 深拷贝: 对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制.原创 2015-07-13 11:24:43 · 847 阅读 · 0 评论 -
适配器模式 - 结构型模式
适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。Convert the interface of a class into another interface clients expect. Adapter lets classes work together, that could not otherwise because of incompatible interfaces.原创 2015-07-14 22:56:41 · 1108 阅读 · 0 评论 -
外观模式 - 结构型模式
外观模式: 为子系统中的一组接口提供一个一致的接口, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 Provide a unified interface to a set of interface in a subsystem.Facade defines a higher-lever interface that make the subsystem easier to use.原创 2015-03-09 23:43:27 · 970 阅读 · 0 评论 -
组合模式 - 结构模式
组合模式:允许你将对象组合成树形来表达结构来表现“整体/部分”层次结构。组合能让用户以一致的方式处理个别对象及对象组合。 包含其他组件的组件为组合对象;不包含其他组件的组件为叶节点对象。The intent of this pattern is to compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and c原创 2015-03-10 17:34:10 · 909 阅读 · 0 评论 -
Reactor模式详解
Reactor模式详解什么是Reactor模式要回答这个问题,首先当然是求助Google或Wikipedia,其中Wikipedia上说: “The reactor design pattern is an event handling pattern for handling service requests delivered concurrently by one or more inpu转载 2017-05-25 17:53:56 · 574 阅读 · 0 评论 -
java8 lambda表达式
java8 lambda表达式原创 2017-03-27 00:32:56 · 810 阅读 · 0 评论 -
单例对象的并发调用需要同步
为什么单例对象的并发调用需要同步?最近在阅读 《Inside theJVM》 这本书,结合一些日常工作学习中的感想,随便写一些东西,蜻蜓点水,不必有章法。 关于“单例同步”: 一直有人在问单例对象的并发调用是否需要同步,基本属于“月经帖”了,答案是现成的满天下都是,但真正能让人心里踏实下来的解释寥寥无几。实际上,只要学习了一些JVM的运行原理,解释这个问题就不难了。如果一个类是单例的,比如转载 2016-07-02 16:12:00 · 2719 阅读 · 0 评论 -
jdbc桥连接过程解析
读多少源码,便知自己有多无知!觉得应该找个在Java中桥连接模式的实际应用,于是就找到了Jdbc连接。于是,困惑和解惑的旅程开始了.......原创 2015-02-08 04:13:52 · 9130 阅读 · 6 评论 -
观察者模式 - 行为模式
观察者模式Observer:Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。原创 2015-07-18 13:08:26 · 1893 阅读 · 0 评论 -
设计模式小结
所有模式:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 补充模式:空对象模式原创 2015-07-21 22:46:48 · 649 阅读 · 0 评论 -
创造型模式 - 建造者模式
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Separate the construction of a complex object from its representation so that the same construction process can create different representations.原创 2015-02-17 12:19:39 · 1380 阅读 · 0 评论 -
工厂方法模式与抽象工厂模式
抽象工厂模式与工厂方法模式的区别 可以这么说,工厂方法模式是一种极端情况的抽象工厂模式,而抽象工厂模式可以看成是工厂方法模式的一种推广。(1)、其实工厂方法模式是用来创建一个产品的等级结构的,而抽象工厂模式是用来创建多个产品的等级结构的。工厂方法创建一般只有一个方法,创建一种产品。抽象工厂一般有多个方法,创建一系列产品。 (2)、工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工原创 2015-02-13 22:45:16 · 1898 阅读 · 0 评论 -
迭代模式 - 行为模式
迭代模式:Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.(它提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节) The C++ and Java standard library abstraction that makes it possible to decouple collecti原创 2015-04-08 17:27:24 · 906 阅读 · 0 评论 -
访问者模式 - 行为模式
访问者模式:访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 Represents an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on ..原创 2015-07-21 16:55:38 · 801 阅读 · 0 评论 -
责任链模式 - 行为模式
责任链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。It avoids attaching the sender of a request to its receiver, giving this way other objects the possibility of handling the request too. The objects become parts of a chain an原创 2015-07-18 16:21:28 · 988 阅读 · 0 评论 -
备忘录模式 - 行为模式
备忘录模式: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。The intent of this pattern is to capture the internal state of an object without violating encapsulation and thus providing a mean for restoring the object into initial state when needed.原创 2015-07-21 11:21:02 · 1047 阅读 · 0 评论 -
常用设计模式的应用场景
常用设计模式的应用场景单例模式 允许自由创建每个类没有实际意义,还有可能造成系统性能下降 优势:减少创建java实例带来的系统开销 便于系统跟踪某个实例的生命周期,实例状态等 2 工厂模式: 工厂模式又分简单工厂模式,抽象工厂模式 使用简单工厂模式的优势是:让对象的调用者和对象创建过程分离,当对象调用者需要转载 2015-02-25 01:20:05 · 559 阅读 · 0 评论 -
23种设计模式全解析
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式转载 2015-02-17 00:57:03 · 5142 阅读 · 0 评论 -
DI(Dependency Inversion 依赖反转)
翻译动机: 当我们设计软件的时候,我们常常考虑low level classes会实现基本和主要的操作,而high level classes用于封闭复杂逻辑。后者往往依赖于前者。可是当我们需要替换前者的时候,我们程度的可扩展性就变得很差。意图:1、High-level modules不应该依赖于low-level modules,它们应该依赖于抽象。2、抽象不转载 2015-02-06 14:32:54 · 594 阅读 · 0 评论 -
UML关系图
依赖(Dependency):虚线箭头表示关联(Association):实线箭头表示聚合(Aggregation):带空心菱形头表示组合(Composition):带实心菱形头的实线表示继承(Realization):空心箭头和实线表示实现(Realization):空心箭头和虚线表示泛化(generalization)关系是一个类(称为子类、转载 2015-01-31 18:13:10 · 488 阅读 · 0 评论 -
聚合与组合的区别
聚合,聚合关系是关联关系的一种,聚合是整体和个体之间的关系。Aggregation is used to represent ownership or a whole/part relationship。一般的表现形式是一个类持有另一个类作成员变量来体现,但绝对不可以New它。聚合关系当一个类destory的时候,持有的另一个类不会受到影响。聚合是"has a",有一个,但它不一定只是你自己的,也可以被另的类有。 组合,组合关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体原创 2015-01-31 16:58:10 · 1778 阅读 · 1 评论 -
关于spring,IOC和AOP的解析原理和举例
关于spring ioc 这段时间也着实好好的看了下spring的相关书籍,对其也有了大概和初步的认识和理解,虽然之前也一直听说spring是一个非常优秀的开源框架,可一直没有机会学习和使用(是不是有点落伍了?呵呵),所以呢,这段时间就重点学习了spring(一个星期的时间当然是入门级的啦~~) 大家一直都说spring的IOC如何如何的强大,其实我倒觉得不是IOC如何的强转载 2015-01-26 14:47:31 · 7975 阅读 · 0 评论 -
设计模式原则详解
设计模式原则详解 这篇文章,不需要你一次就看懂,如果你真的能一次都看懂,我想设计模式对于你来说已经没什么难度了..因为设计模式就是要体现这些原则的,你可以把设计原则看做是一门语言,设计模式是由这些语言编码的程序..你既然已经明白,精通了语言,剩下的编码自然是很简单的事情,编码的越多则经验越多,经验越多则对原则的理解就越深...这是一个学习领悟的过程.. 我希望这篇文章转载 2013-09-01 14:37:21 · 560 阅读 · 0 评论 -
Java设计模式总结
一、常见的模式分类 创建模式结构模式行为模式简单工厂模式适配器模式不变模式工厂方法模式缺省适配模式策略模式抽象工厂模式合成模式模版方法模式单例模式装饰模式观察者模式转载 2013-09-01 13:53:32 · 815 阅读 · 0 评论 -
回调函数透彻理解Java
回调函数,第一次见是在Java编程思想中,以及后来的观察者模式也应用了回调函数的思想。但是一直都没有重视,终于在一次面试的时候吃亏了,越来越理解为什么很多人说Java编程思想这本书要一遍遍的看,吃透! 首先在网络上搜索很多文章介绍什么是回调函数,看的云里雾里的。后来自己一步步分解终于理解了,记录如下。 从维基百科上面摘抄定义:(看完本篇文章再来理解这个定义)转载 2013-02-12 23:43:05 · 533 阅读 · 0 评论 -
java设计模式示例(含代码)
带代码的23种设计模式http://blog.csdn.net/chmask/article/details/2631485转载 2013-02-12 19:53:59 · 1102 阅读 · 0 评论 -
桥连接模式
个人理解: 抽象类持有接口类的引用。 如果是2个维度的话,抽象类就持有一个接口类的引用,如果是多个维度的话,就持有多个接口类的引用。桥连接模式利于扩展,减少子类的个数。当多个维度变化的时候,使代码保持简洁。 抽象的说:桥接模式的做法是把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离。最后,提供一个管理类来组合不同维度上转载 2015-02-05 22:31:56 · 2572 阅读 · 0 评论 -
推拉模式与观察者模式(未完待续)
推拉模式与观察者模式推(push)模式是一种基于客户器/服务器机制、由服务器主动将信息送到客户器的技术。在push模式应用中,服务器把信息送给客户器之前,并没有明显的客户请求。push事务由服务器发起。push模式可以让信息主动、快速地寻找用户/客户器,信息的主动性和实时性比较好。但精确性较差,可能推送的信息并不一定满足客户的需求。推送模式不能保证能把信息送到客户器,因为推模式采用了广播机转载 2015-03-26 17:13:16 · 1984 阅读 · 0 评论 -
状态模式 - 行为模式
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同的一系列类当中,可以把复杂的逻辑判断简单化。原创 2015-07-21 12:03:18 · 1029 阅读 · 0 评论 -
c3p0的DriverManagerDataSource源代码看单例
通过它看单例:public Connection getConnection(String username, String password) throws SQLException { ensureDriverLoaded(); Connection out = driver().connect( jdbcUrl, overrideProps(userna原创 2015-06-30 00:25:35 · 2248 阅读 · 0 评论