自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式入门之访问者模式Visitor

访问者模式定义:表示一个作用于某对象结构中的各个元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。从定义上看,这个模式跟装饰模式的定义很相似(动态地给一个对象添加一些额外的职责),但是装饰模式更多是在原有的基础上进行功能加强或者修改;而访问者模式更多是为对象添加全新的功能。这个模式中用到了二次分发技术,跟tcp协议的三次握手有些类似,首先请求拿到对方的控制权,对方进行接受,然后开始使用控制权访问者模式本质:预留通路,回调实现优点:扩展性好,复用性好,分离无关行为缺点:对象结

2014-05-22 21:08:21 1129

原创 设计模式入门之桥接模式Bridge

桥接模式定义:将抽象部分与它的实现部分分离,使得他们都可以独立地变化广义来讲,桥接模式非常普遍,面向抽象编程,面向接口编程就可以看作是他的体现从客户端的调用可以看出来,不管是要增加消息类型还是发送消息的方式,完全是件非常简单的事情,因为没有耦合,扩展起来非常轻松。Java中的JDBC就是非常典型的桥接应用桥接模式的本质:分离抽象和实现桥接模式很好地提现了开闭原则OCP

2014-05-19 23:47:22 1061

原创 设计模式入门之职责链模式Chain Of Responsibility

职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止职责链模式的本质:分离职责,动态组合优点:请求者和接受者松散耦合,请求者不需要知道接受者是谁优点:动态组合职责缺点:产生很多细粒度对象,不一定能被处理,这时就需要提供默认的处理职责链模式在找到接受者后就会处理完毕,然后结束如果找到接受者后进行处理再交给下一个对象处理,那么就成为功能链了,也就是装饰器模式了何时选择职责链模式:1.如果有多个对

2014-05-19 22:55:07 1094

原创 设计模式入门之装饰器模式Decorator

装饰模式定义:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活这也提现了面向对象设计中的一条基本原则,即:尽量使用对象组合,而不是对象继承在Java中比较常见的一种装饰器模式体现如下:new DataInputStream(new BufferedInputStream(new FileInputStream("IOtest.txt")));FileInputStream完成他自己的功能,然后由装饰器完成需要增加的功能

2014-05-18 12:20:31 1495 2

原创 设计模式入门之备忘录模式Memento

备忘录模式定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态备忘录模式本质:保存和恢复内部状态优点:更好的封装性,由于使用了内部类和窄接口,所以外部就算持有备忘录接口对象也无法访问其中的属性备忘录模式中内部内和窄接口是最给力的设计,这样给把对象的接口给外部保存但是接口中没有方法,所以外部无法访问,充分保证了封装性只有创建它的原发器才可以设置和获取它的值

2014-05-12 23:34:09 1024 1

原创 算法入门之快速排序

快速排序原理:快速排序先把等待排序的集合打乱顺序,把第一个元素作为基准元素,为第二个元素和最后一个元素分配两个指针i和j,如果a[i]小于基准元素则i++,如果a[j]大于基准元素则j--,这样把大于基准元素的a[i]和小于基准元素的a[j]互换,以此类推,最终把基准元素与a[j]相交换,就得到一个a[j]左侧全部小于a[j],右侧全部大于a[j]的一个近似有序数组,然后按照如上步骤重新寻找每个被a[j]分开的数组中的分隔点,最终得到有序数组。在通用排序中,一般都会选取快速排序来解决问题。

2014-05-11 23:23:58 984

原创 设计模式入门之状态模式State

//状态模式定义://允许一个对象在其内部状态改变时改变它的行为//对象看起来似乎修改了它的类//感觉状态模式在实现上跟策略模式太相似了,但是功能是不一样的//状态模式根据状态的变化来选择相应的行为,不同的状态对应不同的类,各个实现类是平行的,但不可以相互交换//而侧罗模式是根据需要来选择相应的实现类,各个实现类是平等的,可以相互交换//实例:投票,根据不同的投票次数对投票者进行不同的

2014-05-11 17:56:59 734

原创 设计模式入门之策略模式Strategy

//策略模式定义://定义一些列算法,把他们一个个封装起来,并且使他们可互相交换。//本模式使得算法可独立于使用它的客户而变化//实例:对不同的客户给出不同的折扣价格,上代码//策略接口public class Strategy { public double calcPrice(double goodsPrice);}//普通用户价格算法public class NormalC

2014-05-11 17:24:41 584

原创 几款“理想”“习惯”应用体验报告

从大四开始知道学习开始,自己就开始对实现理想、自我提升、养成习惯等行为感兴趣,于是在13年过年在家的时间趁着自学php,写了一个叫做习惯小站的网站(目前已经下线了),网站主要功能是签到,用户给自己添加一个习惯,比如:每天早起,每天进行签到,从连续签到和数字中得到满足感,从而刺激用户进步。找工作后就基本没怎么管过,也就没怎么关注这方面的产品了。 今天分析四款产品:十年后,一起阔步,唯卡正能量,念。

2014-05-10 13:27:16 1218

原创 设计模式入门之模板方法模式TemplateMethod

模板方法模式定义:定义一个算法的骨架,而将步骤延迟到子类中。这种模式可以使得在不改变算法骨架(模板)的情况下修改每个步骤的具体实现从功能上来看,这个模式跟生成器模式有些相像,只不过生成器模式定义了创建对象的过程,而模板方法模式定义了算法过程.接口和抽象类(1)接口是特殊的抽象类,接口中所有方法必须是抽象的,不能有具体实现;而抽象类中可以有实现的方法(2)抽象类不一定包含抽象方法,有抽象方法的类一定是抽象类(3)需要约束子类行为时用接口,既要约束子类行为,又要为其提供公共功能时用抽象类模板方法模

2014-05-09 11:16:31 956

原创 算法入门之归并排序(自底向上方法)

与上一篇的自顶向下方法相反,我们直接从最小的问题开始解决,最终大问题迎刃而解实现如下:其中只有merge_sort改变了function less($m, $n) { return $m < $n;}function merge(&$a, $lo, $mid, $hi) { $i = $lo; $j = $mid+1; $tmp = array

2014-05-08 23:41:40 1513

原创 算法入门之归并排序(自顶向下方法)

归并排序原理:归并排序用到的是分治思想,即把一个大问题分成两个小问题,然后把一个小问题再分为两个更小的小问题,从最小的问题开始解决,然后把小问题的结果进行整合,最终解决大问题,这种思想是自顶向下的方法,特点是先进行递归,最终进行排序,在之后的快速排序中可以看到,快速排序特点是先进行排序,后进行递归

2014-05-08 23:32:27 1313

原创 算法入门之希尔排序

希尔排序原理:希尔排序是把j

2014-05-07 23:26:34 710

原创 算法入门之插入排序

插入排序原理:从数组第二个元素开始,与之前的元素进行比较大小,如果小于q

2014-05-07 11:52:02 737

原创 算法入门之选择排序

选择排序:首先从一个序列里找出一个最小的yuan'su

2014-05-07 00:08:46 745

原创 设计模式入门之迭代器模式Iterator

迭代器模式定义:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部实现Iterator::迭代器接口。定义访问和遍历元素的接口ConcreteIterator:具体的迭代器实现对象。实现对聚合对象的遍历,并跟踪遍历时的当前位置Aggregate:聚合对象。定义创建相应迭代器对象的接口ConcreteAggregate:具体聚合对象。实现创建相应的迭代器对象

2014-05-05 23:31:45 913

原创 设计模式入门之命令模式Command

//命令模式定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化//对请求排队或者记录请求日志,以及支持可撤销的操作//模式结构//命令接口public interface Command { public void execute();}//具体的命令,需要封装与之对应的执行者Receiverpublic class ConcreteCommand implem

2014-05-01 19:51:23 698

iOS轮播器循环滚动

基于scrollview的iOS轮播器,可以左右循环滚动拉动,体验起来挺舒服的

2015-08-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除