`

一句话设计模式

 
阅读更多

====================================================================================
有一些聪明的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模板模式

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

分享到:
评论

相关推荐

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

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

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

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

    论设计模式的重要性-《重学设计模式》

    1)设计模式中提到一句很精髓的话:找到稳定点和变化点,运用抽象,把变化点隔离起来。 2)先满足设计原则,再迭代出设计模式。 其实各设计模式之间都是有共通之处的(在java中是抽象、继承、多态、组合的综合...

    设计模式Demo

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

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

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

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

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

    23种设计模式.txt

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

    Java23种基本的设计模式整料整理学习源码示例zip

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

    Java之美[从菜鸟到高手演变]之设计模式

    总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。...所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果

    JAVA设计模式之策略模式.docx

    策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同...用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的实现讲解策略模式实例的结构。

    Java的常用设计模式

    说起设计模式,很多编程语言的设计模式大同小异,...所以一句话概括是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。  2.依赖倒转原则(Dependence Inversion Principle

    我所理解的多态与设计模式

    可是这样一句句很浅显的话,确包含了很多面向对象的知识在里面!  “什么是针对接口编程呢?”,“针对接口编程的真正意思是”针对超类型编程“。所以这里的”接口“不再仅仅指的是java中的interface,还包括了...

    SpringBoot-DesignMode:Java 23种设计模式Demo案列大全 ☞ SpringBoot框架

    SpringBoot-DesignModeJava 23种...* 一旦这个service的代码越来越多,后期维护起来会很困难,不如每个组件的加载单独交给一个任务来处理, * 反正数据和参数都是固定的【这句话很重要,值得深思,如果参数不固定,要

    DisignPatterns:设计模式学习

    所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。##2、里氏代换原则(Liskov Substitution Principle)里氏代换原则是指,任何基类可以出现的地方,子类...

    Android编程设计模式之状态模式详解

    用一句话来表述,状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。 二、定义 当一个对象的内在状态...

    head first design patterns 设计模式3

    第三部分,结束!嘿嘿,真累啊,祝大家09年发大财,没有女朋友的找个美女,有女朋友的早点结婚,结婚没有孩子的赶快加紧生产,生完孩子的加紧赚钱,总之一句话,大家发大财,赚钱才是硬道理!

    C语言 设计模式之访问者模式

    但是,这种模式用简单的一句话说,就是不同的人对不同的事物有不同的感觉。比如说吧,豆腐可以做成麻辣豆腐,也可以做成臭豆腐。可是,不同的地方的人未必都喜欢这两种豆腐。四川的朋友可能更喜欢辣豆腐,江浙的人就...

    酒店客房管理系统源码java-DesignPattern:我总结的一些设计模式学习

    所以一句话概括就是: 为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。 里氏代换原则(Liskov Substitution Principle):对开闭原则的补充。任何基类可以出现的地方,子类...

    追MM与JAVA的23种设计模式

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

Global site tag (gtag.js) - Google Analytics