自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 学习设计模式-迭代器模式(Iterator Pattern)

定义 迭代器模式提供了一个方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 介绍 意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 主要解决:不同的方式来遍历整个整合对象。 何时使用:遍历一个聚合对象。 如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。 关键代码:定义接口:hasNext, next。 应用实例...

2018-06-10 21:24:04 113

原创 学习设计模式-模板方法模式(TemplatePattern)

定义 模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 介绍 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决:一些方法通用,却在每一个子类都重新写了这一方法。 何时使用:有一些通用的方法。...

2018-06-04 22:19:41 112

原创 学习设计模式-外观模式(Facade Pattern)

定义 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义类了一个高层接口,让子系统更容易使用。 介绍 意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。 何时使用: 1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一...

2018-06-03 23:08:08 129

原创 学习设计模式-适配器模式(adapt Pattern)

定义 适配器模式将一个类的接口,转换成客户期望的另一种接口。适配器让原来接口不兼容的类可以合作无间。 应用实例: 1、美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。 2、JAVA JDK 1.1 提供了 Enumeration 接口,而在 1.2 中提供了 Iterator 接口,想要使用 1.2 的 JDK,则要将以前系统的 Enumeratio...

2018-06-03 22:12:42 236

转载 学习设计模式-命令模式(Command Pattern)

命令模式 定义 命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式支持可撤销的操作。 类图

2018-05-25 22:43:10 154

转载 学习设计模式-单例模式(Singleton)

单例模式 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 介绍 意图:保证一个类仅有...

2018-05-19 01:07:13 100

原创 学习设计模式-工厂模式(factory)

工厂模式 1.工厂模式的定义 为何使用工厂模式 实例化活动不应该总是公开的进行,初始化经常造成“耦合”问题,一旦有变化或者扩展,必须打开检查修改实例化代码,通常修改的代码将造成部分系统更难维护和更新,也更容易犯错 工厂模式定义 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是那一个。工厂方法让类把实例化推迟到子类 工厂模式分类 1.简单工厂模式 ...

2018-05-10 18:10:25 92

原创 学习设计模式-装饰者模式(Decorator)

装饰者模式动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。设计原则:类应该对扩展开发,对修改关闭装饰者和被装饰对象有相同的超类型你可以用一个或多个装饰者包装一个对象既然装饰者和被装饰对象有相同的超类型,所有在任何需要原始对象(被包装的)的场合,可以用装饰过的对象代替他。装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的行为,已达到特定的目的。对象可以在任何时候...

2018-05-08 11:31:55 95

原创 学习设计模式-观察者模式(observer)

观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。设计原则:为了交换对象之间的松耦合设计而努力,建立弹性的OO系统,能够应对变化,是因为对象之间的相互依赖降到了最低。观察者模式定义了对象之间一对多的关系主题(也就是可观察者)用一个共同的接口来更新观察者观察者和可观察者之间用松耦合方式结合(loosecoupling),可观察者不知道观察者的...

2018-05-02 20:21:35 148

原创 学习设计模式-策略模式(Strategy Pattern)

策略模式定义了算法族,分别封装起来,让他们之间相互替换,此模式让算法的变化独立与使用算法的客户良好的oo设计必须具备可复用,可扩充,可维护策略模式的使用场景:1.针对同一类型问题的多种处理方式,仅仅是具体行为有差别时; 2.需要安全地封装多种同一类型的操作时; 3.出现同一抽象类有多个子类,而又需要使用 if-else 或者 switch-case 来选择具体子类时。这个模式涉及到三个角色:环境(...

2018-05-01 16:39:56 113

原创 学习设计模式-作用

在面向对象软件设计过程中针对特定问题的简介而优雅的解决方案。设计模式捕获了随时间进化和发展的问题的求解方法。一个模式有四个其他要素:模式名称:帮助记忆问题:在什么时候,什么地方使用模式解决方案:描述了设计的组成成分,他们之间的相关关系及各自的责任和协助方式。效果:描述了模式应用的效果及使用模式应权衡的问题总体结构创建型模式与对象的创建有关;创建型类模式将对象的部分创建工作延迟到子类,创建型对象模式...

2018-04-30 10:28:00 91

原创 我的算法之路2_分析算法

算法基础插入排序(排序纸牌)INSERTONSORT(A) 从小到大      for j =2 to A.length             key=A[j]             //Insert A[j] into the sortedsequence A[1,j-1]             i=j-1;             while i>0 and A[i] >ke...

2017-12-10 23:34:23 144

原创 我的算法学习之路1_算法作用

算法定义:任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。这样算法就是把输入转换为输出的计算步骤的一个序列数据结构:一种存储和组织数据的方式,旨在便于访问和修改,没有一种单一的数据结构对所有用途均有效。作为一种技术的算法:为求解相同问题而设计的不通算法在效率方面常常具有显著的差别。 插入排序:c1n2        归并排序:c2nlgn...

2017-12-09 17:45:19 274

空空如也

空空如也

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

TA关注的人

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