`

一句话设计模式

 
阅读更多

====================================================================================
有一些聪明的OO技巧,允许系统在不修改代码的情况下,进行功能扩展,想想观察者模式。。。
通过加入新的观察者,我们可以在任何时候扩展主题,而且不需向主题中添加代码。
====================================================================================
策略模式=【抽象类定义公用变量和行为+算法解决类给客户】+【行为接口+具体行为类】
Strategy和Factory有一定的类似,Strategy相对简单容易理解,并且可以在运行时刻自由切换。Factory重点是用来创建对象。
Strategy策略模式是属于设计模式中对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.
实际整个Strategy的核心部分就是抽象类的使用,使用Strategy模式可以在用户需要变化时,修改量很少,而且快速.
Strategy适合下列场合:
1.以不同的格式保存文件;
2.以不同的算法压缩文件;
3.以不同的算法截获图象;
4.以不同的格式输出同样数据的图形,比如曲线或框图bar等
抽象类里有行为接口的调用,行为抽离出来了。组合而不是继承。
【应用场景:可以针对MYSQL、ORACLE分别写几个门面,从而进行灵活切换】
====================================================================================
观察者模式=【1出版者:主题subject】+【n订阅者:观察者Observer】
1.订阅者注册后,出版者会给注册者发新东东
2.订阅者可随时取消注册
3.只要出版者持续着生命则会一直有订阅者注册和订阅者取消
出版者会一直给订阅者池子里发最新消息
数据维护只在出版者那,不在订阅者维护。方便管理。
定义:观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
例子:气象站-》WeatherData(气象站提供的天气数据get及更新数据时被调用接口dataChanged()-》公告板
TODO:实现dataChanged()【利用数据更新公告板】
一种实现:dataChanged()里直接调用公告板类进行更新:扩展性不好
【应用场景:可以用于监控】
====================================================================================
装饰者模式=【抽象组件】+【组件】+【抽象装饰者】+【具体装饰者】
1.装饰者和被装饰对象有相同的超类型。
2.你可以用一个或多个装饰者包装一个对象。
3.既然装饰者和被装饰对象有相同的超类型,所以在任何需要原始对象(被包装)的场合可以用装饰过的对象代替它。
4.装饰者可以在所委托被装饰者的行为之前或之后,加上自己的行为,以达到特定的目的。
5.对象可以在任何时候被装饰,所以可以在运行时动态地、不限量地用你喜欢的装饰者来装饰对象。
定义:动态地将责任附加到对象上。苦要扩展功能,装饰者提供了比继承更有弹性的替代方案。
【应用场景:要在目标类里的该当前后加一些日志等作为扩展】
====================================================================================
装饰者模式:将对象包装起来,赋予它们新职责,=》主模块注入进扩展模块里。
适配器模式:包装某些对象,使它们不像自已而是像别的东西。=》继承主模块,将扩展模块依赖注入。
适配器改变了接口,以符合需求。
外观模式:提供子系统一个简化接口。而适配器改变接口符合客户期望。
====================================================================================
外观模式的意图就是提供一个简单的接口,从而让我们的子系统更易于使用.
为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。在构建一个层次化的系统的时候,可以使用Facade模式定义系统的每一层的入口,如果层与层之间是相互依赖的,则可以限定他们仅通过Facade进行通信,从而简化了层与层之间的依赖关系。
意思当我们设计系统的时候要尽量减少对象间的交互,只留下几个密友.就是不要让太多的类耦合在一起,从而避免了修改系统的一部分功能会影响其它的功能.从而减少了维护的花费.
【应用场景:将JDBC那几句代码写到共用类里】
====================================================================================
javaIO装饰者模式
Tomcat 中门面设计模式使用的很多,因为 Tomcat 中有很多不同组件,每个组件要相互交互数据,用门面模式隔离数据是个很好的方法。
Tomcat 中观察者模式也有多处使用,前面讲的控制组件生命周期的 Lifecycle 就是这种模式的体现,还有对 Servlet 实例的创建、Session 的管理、Container 等都是同样的原理。
Tomcat 中命令模式在 Connector 和 Container 组件之间有体现,Tomcat 作为一个应用服务器,无疑会接受到很多请求,如何分配和执行这些请求是必须的功能。
TOMCAT:Container 容器的设计用的是典型的责任链的设计模式

====================================================================================

Template模板模式

抽象类里定义抽象方法,具体的实现交给子类

分享到:
评论

相关推荐

    设计模式自己总结一句话描述

    设计模式分为三大类: 创建型模式,共五种: 工厂方法模式、抽象工厂模式、单例模式、构建者模式、原型模式。 结构型模式,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。...

    漫谈设计模式-从面向对象开始

    由于提供的文件内容中重复包含了“更多资源请访问稀酷客(***)”这一句话,这可能是由于OCR扫描过程中的重复输出。为了维持文章的连贯性和专业性,我们忽略了这一重复信息。实际上,根据给出的标题、描述和部分内容,...

    设计模式 让你轻松理解设计模式,提高开发效率

    文章中提到了“说句话”的例子,即通过建造者模式可以构建出不同类型的对话,每种对话可以根据不同的需求进行定制化。 #### 3. 工厂方法模式(Factory Method) 工厂方法模式是工厂模式的一种变体,它提供了一个...

    24种设计模式介绍与6大设计原则

    所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。 2、里氏代换原则(Liskov Substitution Principle) 里氏代换原则...

    设计模式Demo

    所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。 2、里氏代换原则(Liskov Substitution Principle) 里氏代换原则...

    C#23种设计模式_示例源代码及PDF

    2、BUILDER — MM 最爱听的就是“我爱你”这句话了,见到不同地方的 MM,要能够用她们的 、 方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到 MM 我只要按对应的键, 它就能够用相应的...

    一个参考Junit的设计模式ppt

    Martin Fowler曾引用这句话来形容JUnit的重要性:“在软件开发领域,从未有如此多的人受益于如此少的代码行。” 【JUnit主要特性】 1. 断言(Assertions):JUnit提供了丰富的断言方法,用于检查程序的预期结果,...

    设计模式与现实生活,形象,生动

    建造者模式类似于拥有一款能够根据不同语言环境自动转换“我爱你”这句话的翻译机。无论面对哪个国家的MM,你只需要按下对应的按钮,翻译机就能自动用相应的语言表达爱意。这里的关键是将构建过程(语言转换)与产品...

    趣味JAVA23种设计模式

    想象一下,当你带女朋友去快餐店,无论是麦当劳还是肯德基,只需要简单地说一句“来四个鸡翅”,而不必关心具体是哪家的鸡翅,这是因为快餐店扮演了工厂的角色,客户只需提出需求,具体产品由工厂决定。此模式的优点...

    设计模式之追MM---浅显易懂

    这个翻译机可以翻译多种语言的“我爱你”这句话。当你遇到不同国家的MM时,只需按下对应语言的按钮,就能听到用该语言表达的“我爱你”。这个例子中的翻译机就相当于一个“我爱你”建造者,它可以构建不同语言版本的...

    Java的23种设计模式

    你可以拥有一个多种语言翻译机,每种语言都有一个按键对应,这样当你遇到不同国家的女孩时,只需按下对应的按键,机器就会用相应的语言说出这句话。这里的翻译机就是一个建造者,它可以根据不同的需求构建出不同的...

    JAVA设计模式(策略模式)—视频

    策略模式是对算法的包装,是吧使用算法的责任和算法本身分割开来,委派给不同的对象管理。 策略模式通常把一个系列的算法包装到一系列的... 一句话来形容:准备一组算法,并将每一个算法封装起来,使得他们可以互换。

    23种设计模式

    比如,用一个翻译机来说“我爱你”这句话,可以针对不同的方言生成不同的表达方式,建造者模式使得你可以灵活地改变产品的内部构造而不影响构建过程。 3. **工厂方法模式**:相比于工厂模式,工厂方法模式将对象的...

    j2se一句话学习笔记

    41. **学习方法**:学习编程时要注重实践,理解面向对象的思维,使用设计模式解决问题,注重代码的可扩展性、可维护性。 以上就是对标题和描述中提到的Java SE相关知识点的详细解析,这些知识点涵盖了Java桌面应用...

    23种JAVA设计模式和15种J2EE设计模式.docx

    例如,我有一个多种语言翻译机,可以用来翻译“我爱你”这句话。 1.1.3. Factory Method—工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做。例如,请MM去麦当劳吃汉堡,不同的...

    java 设计模式 java pattern

    在示例中,建造者模式被比喻为一种翻译机,按下不同的按钮就能产生不同语言的“我爱你”这句话,用户无需了解翻译机内部如何转换语言。 这些设计模式的运用可以带来以下好处: 1. 面向接口编程:模式鼓励使用接口而...

    java二十三种设计模式

    例如,多种语言翻译机可以用来说出“我爱你”这句话。 3. 工厂方法模式(Factory Method):核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做。例如,请 MM 去麦当劳吃汉堡,不同的 MM 有不同的...

    java设计模式解释

    就像翻译机,根据不同地区的方言,按下对应的按钮就能说出“我爱你”这句话,无需关心内部的翻译机制。 3. **工厂方法模式**:工厂方法模式是工厂模式的一种扩展,它将产品的具体创建过程交给子类决定。例如,去...

Global site tag (gtag.js) - Google Analytics