自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 【设计模式】享元模式

享元模式Flyweight,运用共享技术有效的支持大量细粒度的对象。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 使用环境: 如果一个应用程序使用了大量的对象,而大量的这些对象造成了很大的存储开销时就应该考虑使用;或者对象的大多数状态可以外部状态,如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象时,也

2016-01-26 11:45:29 783 24

原创 【设计模式】中介者模式

中介者模式Mediator,又称调停者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 优点:首先,Mediator的出现减少了各个Colleague的耦合,使得可以独立地改变和复用各个Colleague类和Mediator;其次,由于把对象如何协作进行了抽象,将中介作为要给独立的概念并将其封装在要给对象中,这样关注的对象就从对象各自本身的行为转移到它们之间的交互上来了,也就是站在一个更宏观的角度去看待对象。 缺点:由于Co

2016-01-25 21:06:58 489 17

原创 【设计模式】职责链模式

职责链模式Chain of Responsibility,又称责任链模式,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它们为止。 优点:当客户提交一个请求时,请求时沿链传递直至有一个ConcreteHandler对象负责处理它。这样请求者不用管那个对象来处理,请求会被处理。使得接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果就是职责链可简化对象的相互连接,它们仅需保持一个指向其后继者的引

2016-01-25 16:54:40 785 11

原创 【设计模式】命令模式

命令模式Command,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在了解命令模式的时候,需要先了解一个设计原则——敏捷开发原则:不要为代码添加基于猜测的、实际不需要的功能。如果不清楚一个系统是否需要命令模式,一般就不要着急去实现它,事实上,在需要的时候通过重构实现这个模式并不困难,只有在真正需要如撤销/恢复操作等功能时,把原来的代码重构为命令模式才有意义。

2016-01-25 11:05:23 585 13

原创 【设计模式】桥接模式

桥接模式Bridge,将抽象部分与它的实现模式分离,使它们都可以独立地变化。抽象与实现分离是指抽象类和它的派生类用来实现自己的对象。 桥接模式就是为了利用合成和聚合关系来减弱实现系统中多角度分类之间的耦合。这种多角度分类是每一种都有可能产生变化,故而此模式使用环境就是每一种分类都可能产生变化的多角度分类的实现系统中。

2016-01-24 20:13:46 624 13

原创 【设计模式】单例模式

单利模式Singleton,保证一个类仅有一个实例,并提供一个访问它的全局访问点。说的简单的,就是设置访问权限,创建唯一实例。 要点:Singleton模式是限制而不是改进类的创建。Singleton类中的实例构造器可以设置为Protected以允许子类派生。Singleton模式一般不要支持Icloneable接口,因为这可能导致多个对象实例,与Singleton模式的初衷违背。Singleton模式一般不要支持序列化,这也有可能导致多个对象实例,这也与Singleton模式的初衷违背。Singleton

2016-01-15 17:24:46 506 14

原创 【设计模式】迭代器模式

迭代器模式Iterator,提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。

2016-01-08 12:37:34 689 5

原创 【设计模式】组合模式

组合模式 Composite,将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 优点:1. 组合模式可以很容易的增加新的构件。2.使用组合模式可以使客户端变的很容易设计,因为客户端可以对组合和叶节点一视同仁。3. 组合模式让客户可以一致地使用组合结构和单个对象。 缺点:1.使用组合模式后,控制树枝构件的类型不太容易。2. 用继承的方法来增加新的行为很困难。

2016-01-08 10:48:20 583 3

原创 【设计模式】备忘录模式

备忘录模式Memento ,又叫做快照模式(SnapshotPattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。说通俗些,就是用来记录数据的,比如玩游戏,需要有适时的进度存取,方便以后继续玩,用不着再从新来过。

2016-01-08 09:42:23 582 3

原创 【设计模式】适配器模式

适配器模式Adapter,将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 通俗一点,就好比我们各自的方言,需要有一个精通这种语言的和我们能听得懂的语言的人来为我们翻译。方便我们去知道另一方说的是什么意思。 目的是使控制范围之外的一个原有对象与某个接口匹配。主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。

2016-01-07 14:58:47 482 2

原创 【设计模式】状态模式

状态模式State,当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。主要解决:当控制要给对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂判断逻辑简化。

2016-01-07 13:23:38 562 3

原创 【设计模式】抽象工厂模式

抽象工厂模式Abstract Factory,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

2016-01-07 12:46:06 666 5

原创 【设计模式】观察者模式

观察者模式Observer,又叫发布-订阅模式(Publish/Subscribe)。定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。

2016-01-07 10:36:56 502 2

原创 【设计模式】建造者模式

建造者模式 Builder,将一个复杂的对象构建与他的表示分离,使得同样的构建过程可以创建不同的表示的意图。分类、优缺点、代码构造、角色、适用环境等。

2016-01-06 21:16:03 478 2

原创 【设计模式】外观模式

外观模式Facade,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。

2016-01-06 20:12:37 500 2

原创 【设计模式】迪米特法则

迪米特法则(LoD)Law of Demeter ,最少知识原则(Least Konwledge Principle,简写LKP)。如果两个类不彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

2016-01-06 18:08:55 648 2

原创 C#之类

通过学习面向对象技术,我们了解到,类是对象的抽象化,对象是类的实例化。例如生物是抽象的,你的狗就是对象,你的猫也是对象,你自己也是对象,等等。 类是有字段、属性和方法的。字段是指类内部用于存储数据的,和属性差不多。属性则是类具有的特点,例如人是分男性或女性,有名字,有年龄,有家庭住址,有出生年月日等等都是属性。而方法可以看作是行为,比如吃饭、学习、游泳、唱歌,等等都属于方法。字段和属性都是静态类型的数据,而方法有动态类型的,也有静态类型的。

2016-01-03 21:43:15 454 3

原创 【设计模式】模板方法模式

模板方法模式TemplateMethod,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

2016-01-02 20:14:33 542

原创 【设计模式】原型模式

原型模式Prototype ,用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种创建型设计模式,其实就是从一个对象再创建另外一个可制定的对象,而且不需要知道任何创建的细节。一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,又对性能是大大的提高。不用重新初始化对象,而是动态地获取对象运行时的状态。

2016-01-02 19:20:19 456

原创 【设计模式】工厂方法模式

工厂方式模式Factory Method,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂方法克服了简单工厂违背开放-封闭原则,又保持了封装对象创建过程的优点,是简单工厂模式的进一步抽象和推广。

2016-01-02 17:12:18 508 2

原创 【设计模式】代理模式

代理模式Proxy为其他对象提供一种代理以控制对这个对象的访问的模式,23种常用的面向对象软件的设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

2016-01-02 16:20:03 450 1

原创 【设计模式】装饰模式

装饰模式DecoratorPattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活

2016-01-02 14:22:47 542 2

原创 【设计模式】依赖倒转原则

依赖倒转原则(DIP)DependenceInversion Principle,依赖于抽象,不要依赖于具体。定义:A 、高层模块不应该依赖底层模块。两个都应该依赖抽象;B 、抽象不应该依赖细节,细节应该依赖于抽象。说白了就是针对接口,不要对实现编程。

2016-01-02 10:27:15 711 3

原创 【设计模式】开放-封闭原则

开放封闭原则(OCP)Open-Closed Principle,对于软件实体(类、模块、函数等等)应该是可扩展的,即扩展是开放的,但是是不可更改的,即更改是封闭的。直接体现软件设计本所追求的目标:封装变化,降低耦合。

2016-01-02 09:14:28 758 1

原创 【设计模式】单一职责原则

Single responsibility principle,又称单一功能原则,规定一个类应该只有一个发生变化的原因。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。

2016-01-01 21:28:35 599 2

原创 【设计模式】策略模式

策略模式定义了算法家族,分别封装起来,让它们之间的相互替换,此模式让算法的变化,不会影响使用算法的客户。它定义一系列算法或行为的方法,所有算法都完成相同工作,只是实现不同,可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合,运用了继承的方法。它就是用来封装算法的,但实际上可以用它封装几乎任何类型的规则,之哟啊在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理。

2016-01-01 21:01:57 407 1

原创 【设计模式】简单工厂模式

我个人理解:简单工厂模式是将代码工厂化,每个工厂生产不同的产品,然后根据人们需要(抽象产品),将不同产品自由整合在一起生成一个新产品(具体产品)。

2016-01-01 19:32:38 695 4

Oracle 10 Client(64位)

支持Oracle 10 Client 64位操作系统安装。

2017-03-03

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

TA关注的人

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