![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 72
JasonQQIT
这个作者很懒,什么都没留下…
展开
-
Java设计模式——六大原则之里氏替换
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子转载 2015-06-23 13:11:23 · 1040 阅读 · 0 评论 -
Java 工厂模式
工厂模式概念:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工原创 2017-01-22 14:59:17 · 393 阅读 · 1 评论 -
Java 单例模式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。 举例:配置文件,工具类,线程池,缓存,日志对象等,如果创造了多个实例,就会导致许多问题,比如说占用过多资源,结果不一致等。 单例模式的结构图: 单例模式的种类: 一、懒汉式 (1)首先我们都知道一个类会有一个默认的构造方法,外界可以通过new对象调用默认构造方原创 2017-01-22 12:22:13 · 262 阅读 · 0 评论 -
Java 设计模式——总章
这个系列将系统的介绍每一个设计模式,首先来说说什么是设计模式。 定义:设计模式是一套被反复使用,多数人知晓的、经过分类编目的、代码设计经验的总结。 目的:使用设计模式是为了提高代码的重用性,让代码更容易的被他人理解、保证代码的可靠性。 设计模式的种类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外原创 2017-01-22 11:06:38 · 311 阅读 · 0 评论 -
Java设计模式——六大原则之最少知道
定义:一个对象应该对其他对象保持最少的了解。 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么样转载 2015-06-23 16:20:43 · 671 阅读 · 0 评论 -
Java设计模式 —— 策略(Strategy)
今天你的leader兴致冲冲地找到你,希望你可以帮他一个小忙,他现在急着要去开会。要帮什么忙呢?你很好奇。 他对你说,当前你们项目的数据库中有一张用户信息表,里面存放了很用户的数据,现在需要完成一个选择性查询用户信息的功能。他说会传递给你一个包含许多用户名的数组,你需要根据这些用户名把他们相应的数据都给查出来。 这个功能很简单的嘛,你爽快地答应了。由于你们项目使用的是MySQL数据库,你很快地转载 2015-06-15 13:52:04 · 376 阅读 · 0 评论 -
Java设计模式 —— 适配器(Adapter)
今天一大早,你的leader就匆匆忙忙跑过来找到你:“快,快,紧急任务!最近ChinaJoy马上就要开始了,老板要求提供一种直观的方式,可以查看到我们新上线的游戏中每个服的在线人数。” 你看了看日期,不是吧!这哪里是马上要开始了,分明是已经开始了!这怎么可能来得及呢? “没关系的。”你的leader安慰你道:“功能其实很简单的,接口都已经提供好了,你只需要调用一下就行了。” 好吧转载 2015-06-15 13:59:04 · 409 阅读 · 0 评论 -
Java设计模式 —— 组合(Composite)
听说你们公司最近新推出了一款电子书阅读应用,市场反应很不错,应用里还有图书商城,用户可以在其中随意选购自己喜欢的书籍。你们公司也是对此项目高度重视,加大了投入力度,决定给此应用再增加点功能。 好吧,你也知道你是逃不过此劫了,没过多久你的leader就找到了你。他告诉你目前的应用对每本书的浏览量和销售量做了统计,但现在想增加对每个书籍分类的浏览量和销售量以及所有书籍总的浏览量和销售量做统计的功能,转载 2015-06-15 13:54:40 · 429 阅读 · 0 评论 -
Java设计模式 —— 模板方法(Template Method)
今天你还是像往常一样来上班,一如既往地开始了你的编程工作。 项目经理告诉你,今天想在服务器端增加一个新功能,希望写一个方法,能对Book对象进行处理,将Book对象的所有字段以XML格式进行包装,这样以后可以方便与客户端进行交互。并且在包装开始前和结束后要打印日志,这样方便调试和问题定位。 没问题!你觉得这个功能简直是小菜一碟,非常自信地开始写起代码。 Book对象代码如下:转载 2015-06-09 21:16:28 · 364 阅读 · 0 评论 -
Java设计模式 —— 单例(Singleton)
最近在csdn和github上面发现了几篇比较好的设计模式文章,于是打算把所有的23种设计模式都整理下来,以方便以后再次复习,同时将知识分享给朋友们共同进步,本文转载自http://blog.csdn.net/guolin_blog/article/details/8860649,非常感谢。 写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上线后还可以帮助你分析数转载 2015-06-05 10:40:41 · 343 阅读 · 0 评论 -
Java设计模式——依赖、关联、聚合和组合之间区别的理解
在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,这一点在我的前一篇博文《设计模式中类的关系》中已经有所提及,下面就来详细的论述一下在java中如何准确的体现依赖、关联、聚合和组合。 首先看一看书上对这四转载 2015-06-23 11:00:39 · 1923 阅读 · 0 评论 -
Java设计模式——六大原则之单一原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2转载 2015-06-23 12:39:53 · 1368 阅读 · 0 评论 -
Java设计模式——六大原则之接口隔离
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类C来说不是最小接口,则类B和类D必须去实现他们不需要的方法。 解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。 举例来说明接口隔离原则: (图转载 2015-06-23 14:34:00 · 3502 阅读 · 0 评论 -
Java设计模式——类的关系
在Java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。 1. 依赖(Dependence) 依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中转载 2015-06-19 16:09:21 · 391 阅读 · 0 评论 -
Java设计模式——六大原则之开闭
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 开闭原则是面向转载 2015-06-23 16:24:42 · 797 阅读 · 0 评论 -
Java设计模式——六大原则之依赖倒置
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。 解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口转载 2015-06-23 13:35:00 · 1051 阅读 · 0 评论 -
Java 责任链模式
定义:责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任,避免了请求发送者和接受者之间的耦合,但也同时降低了性能。代码中的Exception就是一个责任链模式。JavaScrp原创 2017-01-22 16:42:19 · 418 阅读 · 0 评论