设计模式
文章平均质量分 86
笨蛋糕
当你的才华还不足以撑起你的野心时,你应该静下心去学习!
展开
-
设计模式之适配器模式
适配器模式(Apater)将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式主要解决什么问题呢? 答:简单地说,就是需要的东西就在面前,但却不能使用,而短时间又无法改造它,于是我们就想办法适配它。 系统的数据和行为都正确,但接口不符合时,我们应该考虑用适配器原创 2014-07-09 13:10:32 · 719 阅读 · 0 评论 -
合成/聚合复用原则CARP
“要尽量使用合成/聚合,尽量不要使用继承。”陈述:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到复用已有功能的目的。引入:如我们所知,在面向对象设计里,不同环境中复用已有设计和实现的基本方法:继承。合成/聚合。1、继承复用继承复用通过扩展一个已有对象的实现来得到新的功能,基类明显地捕获原创 2014-07-09 10:23:28 · 684 阅读 · 0 评论 -
开放-封闭原则
1、开放封闭原则(OCP,Open Closed Principle)是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的,例如以Liskov替换原则实现最佳的、正确的继承层次,就能保证不会违反开放封闭原则。关于开放封闭原则,其核心的思想是:软件实体应该是可扩展,而不可修改原创 2014-07-09 09:23:39 · 567 阅读 · 0 评论 -
依赖倒转原则
所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变动时上层也要跟着变动,这就会导致模块的复用性降低而且大大提高了开发的成本。面原创 2014-07-09 09:30:43 · 549 阅读 · 0 评论 -
设计模式之外观模式
为了系统中一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 UML图如下:原创 2014-07-09 10:04:59 · 658 阅读 · 0 评论 -
单一职责原则SRP
1、一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的分离。什么是职责SRP中,把职责定义为“变化的原因”。如果你能想到N个动机去改变一个类,那么这个类就具有多于一个的职责原创 2014-07-09 09:13:13 · 564 阅读 · 0 评论 -
设计模式之责任链模式
1、责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。奖这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。UML图如下:原创 2014-07-09 11:46:23 · 610 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化。什么叫抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。 由于实现的方式多种,桥接模式的核心意图就是把这些实现独立出来,让它们各自地变化。这样就使得每种实现的变化不会影响其他实现,从而达到应对变化的目的。原创 2014-07-09 10:24:26 · 528 阅读 · 0 评论 -
设计模式之中介者模式
一系列的对象交互。中介者使各对象不需要显示相互引用,从而使其耦合松散,而且可以独立地变化它们之间的交互。UML图如下:原创 2014-07-09 11:17:17 · 582 阅读 · 0 评论 -
设计模式之备忘录模式
1、备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的那些内部状态。Memento(备忘录):原创 2014-07-09 12:27:05 · 588 阅读 · 0 评论 -
设计模式之工厂方法模式
1、定义了一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法使一个类的实例化延迟到其子类。UML图如下:原创 2014-07-09 16:26:18 · 527 阅读 · 0 评论 -
设计模式之代理模式
代理模式(Proxy)为其他对象提供一种代理以控制对这个对象的访问。Subject类定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。UML图如下:原创 2014-07-09 16:39:55 · 634 阅读 · 0 评论 -
设计模式之状态模式
状态模式(State),当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象的状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。UML图如下:原创 2014-07-09 13:27:55 · 640 阅读 · 0 评论 -
设计模式之组合模式
1、组合模式(Composite):将对象组合成树形结构已表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。UML图如下:原创 2014-07-09 15:44:48 · 527 阅读 · 0 评论 -
设计模式之装饰模式
1、动态地给一个对象添加一些额外的职责,就增加工能来说,装饰模式比生成子类更为灵活。Component是定义一个对象接口,可以这些对象动态添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator存在的。至原创 2014-07-09 14:17:24 · 522 阅读 · 0 评论 -
设计模式之模板方法模式
定义了一个操作中的算法的骨架,而将一些步骤延迟到了子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但某个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法来处理。 UML图如下:原创 2014-07-09 16:18:10 · 537 阅读 · 0 评论 -
设计模式之观察者模式
1、观察者模式又叫做发布-订阅(Publish/Subscribe)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。UML图如下:原创 2014-07-09 15:53:50 · 580 阅读 · 0 评论 -
设计模式之迭代器模式
1迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而不是暴露该对象的内部表示。 一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。你需要对聚集有多种方式遍历时,可以考虑用迭代器模式。为遍历不同的聚集结构提供如开始,下一个,是否结束,当前哪一项等统一的接口。UML图如下:原创 2014-07-09 15:31:33 · 570 阅读 · 0 评论 -
设计模式之抽象工厂模式
抽象工厂模式(Abstract Factory)提高一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 AbstractProductA和AbstractProductB是两个抽象产品,之所以为抽象,是因为它们都有可能有两种不同的实现。 AbstractFactory是一个抽象工厂接口,它里面应该包含所有的产品创建的抽象方法。而Concret原创 2014-07-09 13:43:32 · 608 阅读 · 0 评论 -
设计模式之简单工厂模式
1、简单工厂设计模式:也就是说,到底要实例化谁,将来会不会增加实例化的对象,这是很容易发生变化的地方,应该考虑用一个单独的类来做这个创建实例的过程,这就是工厂。 UML图如下:原创 2014-07-09 16:46:20 · 606 阅读 · 0 评论 -
设计模式之享元模式
1、享元模式运用共享技术有效地支持大量细粒度的对象。UML图如下:原创 2014-07-09 10:41:39 · 698 阅读 · 0 评论 -
设计模式之命令模式
命令模式(commond),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。原创 2014-07-09 10:31:11 · 669 阅读 · 0 评论 -
设计模式——概述
转自:http://blog.csdn.net/ithomer/article/details/7525022最近准备开始学习设计模式,在此分享给大家一系列的好文章,同时转载过来作为参考资料。设计模式(Design Pattern),是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证原创 2013-12-19 15:33:21 · 758 阅读 · 0 评论 -
设计模式——MVC架构
MVC(Model-View-Controller,模型-视图-控制器)是软件工程中的一种软件架构模式,它把软件系统分为三个基本部分:模型(Model)、视图(View)、控制器(Controller)。MVC不是一种设计模式(Design Pattern),而是一种架构模式(Architectural Pattern),用以描述应用程序的结构以及结构中各部分的职责和交互方式。原创 2013-12-19 16:01:32 · 1999 阅读 · 0 评论 -
设计模式之单例模式
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。UML图如下:原创 2014-07-09 10:15:40 · 560 阅读 · 0 评论 -
设计模式之策略模式
1、策略模式定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。结构图如下:原创 2014-07-09 09:39:36 · 633 阅读 · 1 评论