java设计模式
文章平均质量分 72
yabay2208
这个作者很懒,什么都没留下…
展开
-
设计模式六大原则例子(五)-- 最少知识原则(LKP)/ 迪米特法则(LOD)例子
之前我们对设计模式的六大原则做了简单归纳,这篇博客是对最少知识原则进行的举例说明。最少知识原则的意义朋友类的定义:出现在成员变量、方法的输入输出参数中的类。而方法体类内部的类不能算。每个对象都必然会与其他对象有耦合关系,两个对象之间的耦合就成为朋友关系,这种关系的类型有很多,如组合、聚合、依赖等。具体实现:在实际应用中经常会出现这样一个方法:放在本类中也可以,放在其他类中也没有问题,怎么去衡量原创 2017-06-29 18:01:02 · 4543 阅读 · 0 评论 -
设计模式六大原则(三)-- 里氏替换原则 ( LSP )
From Now On,Let us begin Design Patterns。里氏替换原则 Liskov Substitution Principle(LSP)定义如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。 If for each object o1 of type S原创 2017-06-20 16:56:30 · 716 阅读 · 0 评论 -
设计模式六大原则(二)-- 单一职责原则 ( SRP )
From Now On,Let us begin Design Patterns。单一职责原则 Single Responsibility Principle(SRP)定义 应该有且仅有一个原因引起类的变更。There should never be more than one reason for a class to change.可以理解为:一个类只负责一项职责,如果发生变更时,可以考虑将原创 2017-06-20 14:43:09 · 619 阅读 · 0 评论 -
设计模式六大原则(一)-- 接口隔离原则(ISP)
From Now On,Let us begin Design Patterns。接口隔离原则 Interface Segregation Principle 定义客户端不应该依赖它不需要的接口(一个接口中的方法不应该冗余)Clients should not be forced to depend upon interfaces that they don’t use.类间的依赖关系应该建立在原创 2017-06-20 10:34:41 · 792 阅读 · 0 评论 -
(第二大类)结构型模式 小小总结一下
From Now On,Let us begin Design Patterns。结构型模式可以让代码结构更加清晰明了,程序更易于维护,同时符合OCP,程序更加易于扩展。 目标结构型模式可以让代码结构更加清晰明了,程序更易于维护,同时符合OCP,程序更加易于扩展。降低对象之间的耦合性。结构型模式有7种,分别是:代理模式: 目标: 体现功能复用 相识区别: 适配器模式:对于适配器原创 2017-07-24 19:14:06 · 314 阅读 · 0 评论 -
设计模式(06) 模板方法模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。模板方法模式 定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使用子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 Define the skeleton of an algorithm in anoperation, deferring some steps to subclasses.原创 2017-07-19 11:01:34 · 328 阅读 · 0 评论 -
设计模式(13) 享元模式(简单入门 结构模式)
From Now On,Let us begin Design Patterns。享元模式 定义采用一个共享来避免大量拥有相同内容对象的开销。这种开销中最常见、直观的就是内存的损耗。享元模式以共享的方式高效的支持大量的细粒度对象。 Use sharing to support large numbers of fine-grained objects efficiently.(理解举例:享元模原创 2017-07-24 16:51:15 · 493 阅读 · 0 评论 -
设计模式(12) 组合模式(简单入门 结构模式)
From Now On,Let us begin Design Patterns。组合模式 定义将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients原创 2017-07-24 14:41:17 · 368 阅读 · 0 评论 -
设计模式(11) 桥接模式(简单入门 结构模式)
From Now On,Let us begin Design Patterns。桥接模式 定义将抽象和实现解耦,使得两者独立地变化。 Decouple an abstraction from its implementation so that two can vary independently.通用类图: 角色说明: Abstraction类:业务抽象类,定义一个抽象接口,维护对原创 2017-07-24 10:33:11 · 330 阅读 · 0 评论 -
设计模式(22) 备忘录模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。备忘录模式 定义在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。Without violating encapsulation, capture and externalize an object’s internal state so that原创 2017-08-25 17:44:17 · 322 阅读 · 0 评论 -
设计模式(21) 解释器模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。解释器模式(很少用呀,至少我就没用过,还是直接分享一下设计模式之禅给大家好了。) 定义给定一门语言,定义它的方法的一种表示,并定义一个解释器,该解释器使用表示来解释语言中的句子。 Given a language, define a representation for its grammar along wit原创 2017-08-24 15:07:55 · 257 阅读 · 0 评论 -
设计模式六大原则(六)-- 开放封闭原则 ( OCP )
From Now On,Let us begin Design Patterns。开放封闭原则 Open Closed Principle 定义一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。 Software entities like classes, modules and functions should be open for extension but closed for m原创 2017-06-26 11:03:00 · 1029 阅读 · 0 评论 -
设计模式(14) 策略模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。策略模式 定义定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。 Define a family of algorithms, encapsulate each one, and make them interchangeable.通用类图: 角色解说:Context封装角色:也叫上下文角色,屏蔽高原创 2017-07-25 10:27:47 · 393 阅读 · 0 评论 -
设计模式(15) 命令模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。命令模式 定义将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 Encapsulate a request as an object,thereby letting you parameterize clients with differe原创 2017-07-25 16:26:13 · 371 阅读 · 0 评论 -
设计模式(16) 中介者模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。中介者模式 你为什么需要中介者模式: 定义用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 Define an object that encapsulates how a set of objects interact. Mediat原创 2017-07-25 20:32:53 · 366 阅读 · 0 评论 -
设计模式(17) 责任链模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。责任链模式 定义使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 Avoid coupling the sender of a request to its receiver by giving more than on原创 2017-08-18 17:53:37 · 322 阅读 · 0 评论 -
设计模式(18) 迭代器模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。迭代器模式 定义它提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。 Provide a way to access the elements of an aggregate object sequentially without exposing its underlying represen原创 2017-08-21 20:30:05 · 283 阅读 · 0 评论 -
设计模式(23) 观察者模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。这是设计模式最后一篇啦,完结篇。欧耶,之前一直没搞明白这个设计模式是什么回事,现在终于弄懂了,给大家分享一下。观察者模式 定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。Define a one-to-many dependency between obj原创 2017-09-05 16:34:17 · 384 阅读 · 0 评论 -
设计模式(20) 访问者模式(简单入门 行为模式)(转载)
这一篇文章转载来自http://blog.csdn.net/yuanlong_zheng/article/details/7584862 这一篇文章转载来自http://blog.csdn.net/yuanlong_zheng/article/details/7584862访问者模式 定义封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。转载 2017-08-22 16:52:30 · 299 阅读 · 0 评论 -
设计模式(07) 代理模式(简单入门 结构模式)
From Now On,Let us begin Design Patterns。代理模式 定义为其他对象提供一种代理以控制对这个对象的访问。 Provide asurrogate or placeholder for another object to control access to it.代理模式也叫做委托模式,它是一项基本设计技巧。许多其它的模式,如状态模式、策略模式、访问者模式本原创 2017-07-19 15:33:22 · 330 阅读 · 0 评论 -
(第一大类)创建类模式 小小总结一下
From Now On,Let us begin Design Patterns。我们只关心获取对象的结果,对对象的创建过程进行统一处理,封装对象的创建过程。提高程序的易读性,让开发者更容易沟通。 目标创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是:单例模式:用于得到内存中的唯一对象。(推荐大家使用饿汉模式,原创 2017-07-18 16:58:01 · 336 阅读 · 0 评论 -
设计模式(01) 单例模式(创建类模式)(下,懒汉模式和双重检查锁)
From Now On,Let us begin Design Patterns。懒汉模式和双重检查锁这篇文章我们接着上一篇文章,继续设计模式里面的单例模式:这一篇我们要写的是懒汉模式和双重检查加锁的实例,我用我个人的编程经验跟大家讲述这个很有趣的故事,而且您听完会觉得很简单。说出我的故事:懒汉模式刚刚工作的时候,我老大分配给我一个任务:写一个跟fastdfs(一个开源的轻量级分布式文件系统,它对文原创 2017-07-05 10:27:12 · 1067 阅读 · 4 评论 -
设计模式六大原则(五)-- 最少知识原则 ( LKP ) / 迪米特法则 ( LOD )
From Now On,Let us begin Design Patterns。最少知识原则 Least Knowledge Principle / 迪米特法则 Law Of Demeter 定义一个对象应该对其他对象保持最少的了解。An object should keep a minimum understanding of other objects.只与直接的朋友通信。Only原创 2017-06-26 10:06:48 · 1367 阅读 · 0 评论 -
设计模式(01) 单例模式(创建类模式)(上,两种推荐的实现方法)
From Now On,Let us begin Design Patterns。单例模式 定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 Ensure a classhas only one instance, and provide a global point of access to it.单例模式有如下几个特点:1. 它只有一个实例2. 它必须要自行实例化3.原创 2017-07-04 18:16:01 · 461 阅读 · 0 评论 -
设计模式六大原则(四)-- 依赖倒置原则(DIP)
From Now On,Let us begin Design Patterns。依赖倒置原则 Dependence Inversion Principle 定义高层模块不应该依赖低层模块,两者都应该依赖其抽象 , High level modules should not depend upon low level modules. Both should depend upon abstrac原创 2017-06-24 13:55:13 · 738 阅读 · 0 评论 -
设计模式(02) 工厂方法模式+简单工厂模式(上)
From Now On,Let us begin Design Patterns。简单工厂模式 + 工厂方法模式 定义定义一个用创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 Define aninterface for creating an object, but let subclasses decide which class toinstantiate.原创 2017-07-12 16:21:43 · 476 阅读 · 0 评论 -
设计模式 之 准备开始之前(转载23种经典的jdk中设计模式)
转自:http://coolshell.cn/articles/3320.html下面是JDK中有关23个经典设计模式的示例,在stakeoverflow也有相应的讨论: http://stackoverflow.com/questions/1673841/examples-of-gof-design-patternsStructural(结构模式)Adapter: 把一个接口或是类变成另外一种转载 2017-06-30 14:47:50 · 267 阅读 · 0 评论 -
设计模式 之 准备开始之前
0.设计模式是什么?它是一套理论,由软件界的先辈们总结出的一套可以反复使用的经验,它可以提高代码的可重用性,增强系统的可维护性,以及解决一系列的复杂问题。(软件的难处是如何把握需求的变更,变更不可控,只能拥抱变化)。设计模式给出了指导,专家首先提出了6大设计原则。设计模式是对面向对象思想的深刻理解,对软件设计方法和编码经验的完美总结。但“6大原则”——口号,而“23种设计模式”——真正付诸实践的详尽原创 2017-06-30 14:22:53 · 606 阅读 · 0 评论 -
设计模式六大原则例子(六)-- 开放封闭原则(OCP)例子
之前我们对设计模式的六大原则做了简单归纳,这篇博客是对开放封闭原则进行的举例说明。开放封闭原则的意义软件实体应该对扩展开放,对修改关闭,其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。软件实体包括以下几个部分:1.项目或软件产品中按照一定的逻辑规则划分的模块2.抽象和类3.方法当我们修改原有代码的时候,可以分成两个方面去看:关于修改,两方面:第一个方面是原创 2017-06-30 11:53:00 · 14218 阅读 · 5 评论 -
设计模式六大原则例子(二)-- 单一职责原则(SRP)例子
之前我们对设计模式的六大原则做了简单归纳,这篇博客是对单一职责原则进行的举例说明。单一职责原则的意义对象不应该承担太多职责,正如人不应该一心分为二用。唯有专注,才能保证对象的高内聚;唯有单一,才能保证对象的细粒度。对象的高内聚与细粒度有利于对象的重用。一个庞大的对象承担了太多的职责,当客户端需要该对象的某一个职责时,就不得不将所有的职责都包含进来,从而造成冗余代码或代码的浪费。这实际上保证了DRY原创 2017-06-27 17:05:25 · 8900 阅读 · 2 评论 -
设计模式六大原则例子(三)-- 里氏替换原则(LSP)例子
之前我们对设计模式的六大原则做了简单归纳,这篇博客是对里氏替换原则进行的举例说明。里氏替换原则的意义子类可以扩展父类的功能,但不能改变父类原有的功能 继承机制的优点:代码共享,减少创建类的工作量提高代码的重用性;子类可以形似父类,又异于父类;提高父类的扩展性,实现父类的方法即可随意而为;继承机制的缺点:继承是入侵性的(只要继承,就必须拥有父类的所有属性与方法);降低了代码的灵活性(原创 2017-06-27 18:18:01 · 8138 阅读 · 1 评论 -
设计模式(05) 原型模式
From Now On,Let us begin Design Patterns。原型模式 定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype原创 2017-07-18 16:29:03 · 313 阅读 · 0 评论 -
设计模式(10) 门面/外观模式(简单入门 结构模式)
From Now On,Let us begin Design Patterns。门面模式, 也称外观模式 定义要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。)简言之,门面对象是外界访问子系统内部的唯一通道。 (Façade Pattern)Provide a unified interface to a set of int原创 2017-07-21 13:37:36 · 405 阅读 · 0 评论 -
设计模式(04)创建者模式
From Now On,Let us begin Design Patterns。创建者模式 定义将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示。 Separate theconstruction of a complex object from its representation so that the sameconstruction process can c原创 2017-07-17 17:57:25 · 387 阅读 · 0 评论 -
设计模式(09) 适配器模式(简单入门 结构模式)
From Now On,Let us begin Design Patterns。适配器模式 定义将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 Convert the interface of a class into another interface clients expect. Adapter lets classes w原创 2017-07-20 17:33:49 · 316 阅读 · 0 评论 -
设计模式(03) 抽象工厂模式(下)
From Now On,Let us begin Design Patterns。抽象工厂模式 定义抽象工厂模式(AbstractFactory Pattern) 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。Provide an interface ofr creating families of related or dependentobjects without s原创 2017-07-17 11:55:53 · 349 阅读 · 0 评论 -
设计模式(08) 装饰模式(简单入门 结构模式)
From Now On,Let us begin Design Patterns。装饰模式 定义保持接口不变的情况下,动态地给一个对象添加一些额外的职责。就增加功能来讲,装饰模式相比生成子类更为灵活。 (Decorator Pattern)Attach additional responsibilities to an object dynamically keeping the same i原创 2017-07-20 15:12:03 · 382 阅读 · 0 评论 -
设计模式六大原则例子(四)-- 依赖倒置原则(DIP)例子
之前我们对设计模式的六大原则做了简单归纳,这篇博客是对依赖倒置原则进行的举例说明。依赖倒置原则的意义DIP是6大原则中最难以实现的原则,它是实现开闭原则的重要途径,DIP没有实现,就别想实现对扩展开放,对修改关闭。在项目中只要记住“面向接口编程”就基本上抓住了DIP的核心对各种概念进行一个描述:低层模块:不可分割的原子逻辑,可能会根据业务逻辑经常变化。高层模块:低层模块的再组合,对低层模块的原创 2017-06-28 14:12:25 · 16212 阅读 · 2 评论 -
设计模式六大原则例子(一)-- 接口隔离原则(ISP)例子
之前我们对设计模式的六大原则做了简单归纳,这篇博客是对接口隔离原则进行的举例说明。接口隔离原则的意义建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。 在程序设计中,依赖几个专用的接口要比依赖一个综合的接口更灵活。接口是设计时对外部设定的“契约”,通过分散定义多个接口,可以预防外原创 2017-06-27 09:49:44 · 4475 阅读 · 4 评论 -
设计模式(19) 状态模式(简单入门 行为模式)
From Now On,Let us begin Design Patterns。状态模式 定义当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。 Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.原创 2017-08-22 11:45:14 · 368 阅读 · 0 评论