Fork me on GitHub
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 适配器模式:把一个类的接口转换为客户端需要的另一个接口 比如说,我们去相亲,目标中的女孩是会唱歌会跳舞的女孩,但是介绍人说这个女孩只会唱歌,不会跳舞,那你肯定不会满意呀。不过介绍人说,没关系,我有办法。哦?那我们来看看他有什么办法呢 上方Girl接口就是 阅读全文
posted @ 2018-06-30 23:11 石玉军 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 合成模式的职责是将对象组织到树结构中 观察上方类图: interface,一个接口定义了一个获得当前对象名字的方法 leaf:树中的叶子节点,实现了interface Branch:树枝节点,不仅实现了getName方法,同样它本身具有添加节点删除节点的 阅读全文
posted @ 2018-06-30 23:10 石玉军 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 装饰模式:以对客户端透明的方式扩展对象的功能 装饰模式类图如下: 我们分析一下类图: Girl:女孩接口,定义了一个getName()方法 XiaoWang:女孩的实现类,她实现了getName方法, Decorator:装饰类,当我们想要扩展小王的方法 阅读全文
posted @ 2018-06-30 23:10 石玉军 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 享元模式:以共享的方式高效的支持大量的细粒度对象 我们以咖啡为例,一家咖啡店一天卖出几千杯咖啡其实这几千杯也不过是几十种口味。在Java中你觉得是new几千次咖啡好还是new几十次口味好呢?享元模式就是利用的这个原理来共享的变量了。 来看一下类图: Fl 阅读全文
posted @ 2018-06-30 23:09 石玉军 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 代理模式;给某个对象提供一个代理对象,由代理对象持有对原对象的引用。 代理模式就比较符合中国人含蓄的性格,假如有个姑娘想要找个对象,但是直接满大街去喊我要找对象的不是很多吧。大部分的女孩还是倾向于先去找一个媒人,让媒人来给自己介绍对象。这里的媒人其实就是 阅读全文
posted @ 2018-06-30 23:09 石玉军 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 桥梁模式:将抽象化与实现化脱藕,使二者可以独立的变化 大家应该对日志记录比较熟悉,不知道有没有自己写过一个日志处理的程序,你又是如何实现的呢? 今天的桥梁模式就根据一下需求来分析一下: 大家可以看一下这个需求哈,2个以上,那我就实现2个呗,一般人可能都会 阅读全文
posted @ 2018-06-30 23:08 石玉军 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 外观模式:外部系统与子系统的通信必须通过一个统一的对象进行 举个例子,现在结婚是不是都找婚庆公司啊,为什么呢?因为如果不找婚庆公司自己筹备的话,我们可能得自己跑去订酒店,自己去找主持人,自己去找摄像,自己去找车队。是不是太麻烦了点,而有了婚庆公司就不一样 阅读全文
posted @ 2018-06-30 23:08 石玉军 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 策略模式:使算法在不影响客户端的情况下发生变化。 例如某宝上的一件商品,有时候8折并返现3元、有时候7折返现1元、有时候9折不返现、有时候不打折返现2元等等,我们可以看到这个商品不同时刻要计算利润或者什么的时候是不一样的,现在就可以用到策略模式了。 代码 阅读全文
posted @ 2018-06-30 23:07 石玉军 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 观察者模式:多个观察者对象同时观察一个主题对象,当这个主题对象发生变化时,会通知所有的观察者 来看一下下方类图 Subject:主题类,所有主题的父类,负责对观察者的管理,有添加观察者,删除观察者,通知所有的方法 SubjectImpl:主题子类,拥有状 阅读全文
posted @ 2018-06-30 23:06 石玉军 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 模板方法:在一个抽象类中定义一部分的实现,其余的定义抽象方法迫使子类实现 相信看了上方的定义以后大家已经理解了模板模式,我们来看一下类图 抽象类定义了4个方法,其中operation是私有的,在这个方法里调用了其他三个方法,而方法3是自己实现的。方法1和 阅读全文
posted @ 2018-06-30 23:06 石玉军 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 引言:通过给出一个原型对象来指明所创建的对象的类型,然后复制这个原型对象来创作同类型的对象 Java中使用原型模式必须要满足的条件如下: 1.对于任何对象都有x.clone()!=x 。(也就是说克隆的对象和原先的对象不是一个对象) 2.x.clone( 阅读全文
posted @ 2018-06-30 23:05 石玉军 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 简单工厂: 入门级的设计模式之一,也是学习工厂模式的的基础。 需求:假如我们需要去相亲,介绍人跟你说了,我这次给你找了很多个小姑娘,随便挑哦。 听到这句话你就好奇了,哎呦,你好厉害呀,怎么做到的呢,下面我们就来看看介绍人是怎么做到吧。 注:不熟悉UML的 阅读全文
posted @ 2018-06-30 23:05 石玉军 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 很多初次接触UML的朋友们可能会感觉它各种各样的线条、关系、描述等晦涩难懂。本篇文章简单介绍了一下其中几个图,用最朴实的语言结合上图片来让你一眼就能理解他们,如果您在阅读的过程种发现错误之处恳请您在评论区指点。 1.类图、对象图、接口 这三种图是uml中最简单的图了,我想看了下方三张图片你就明白了: 阅读全文
posted @ 2018-06-30 23:04 石玉军 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 引言:建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而利用一个建筑过程生成具有不同内部表象的对象。 初次读来这句话可能晦涩难懂,待我们一点点的来剖析它,解开他的神秘面纱。先看下图: Builder:抽象建造者,给出了建造接口,这里我们以造 阅读全文
posted @ 2018-06-30 23:04 石玉军 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 学习更多设计模式请参考:入门设计模式之汇总篇 了解单例模式之前我们先来了解一下单例模式的三个要点: 1.一个类只能有一个实例(就是只需要new一次呗) 2.它必须自行创建这个实例(就是构造方法不对外暴露呗) 3.它必须向整个系统提供这个实例(就是获取实例的方法是静态的呗) 其实通过分析上方三个要点我 阅读全文
posted @ 2018-06-30 23:03 石玉军 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 死磕算法之二分查找法 死磕算法之选择排序 死磕算法之插入排序 死磕算法之快速排序 死磕算法之堆排序 死磕算法之希尔排序 死磕算法之冒泡排序 持续更新中。。。。。。。。。。。。 死磕算法之二分查找法 死磕算法之选择排序 死磕算法之插入排序 死磕算法之快速排序 死磕算法之堆排序 死磕算法之希尔排序 死磕 阅读全文
posted @ 2018-06-30 23:02 石玉军 阅读(141) 评论(0) 推荐(0) 编辑