碎片时间学习 java 23种设计模式
工欲善其事必先利其器,java23种设计模式就是我们程序员的利器,因为这是从许多优秀的软件系统中总结出来的,是针对不同类问题的最佳解决方案。所以让我们来掌握它!
逆风GLORY
Stay Hungry, Stay Foolish. – Steve Jobs
展开
-
Java设计模式 - 蝇量模式(享元模式)
蝇量模式(享元模式):蝇量模式优点:蝇量模式应用:蝇量模式实例:类图:示例:代码:上述代码 GitHub 地址:https://github.com/baicun/designPatterns原创 2020-09-02 20:01:07 · 291 阅读 · 0 评论 -
Java设计模式 - 责任链模式
责任链模式:责任链模式优点:责任链模式应用:责任链模式实例:类图:示例:代码:上述代码 GitHub 地址:https://github.com/baicun/designPatterns原创 2020-08-18 19:00:23 · 417 阅读 · 0 评论 -
Java设计模式 - 生成器模式
生成器模式(建造者模式):封装一个复杂对象构建过程,并允许按步骤构造生成器优点:将复杂对象的创建过程封装起来,只需要指定具体的生成器就能生成特定对象生成器模式应用:java.lang.StringBuilder#append(),java.lang.StringBuffer#append()同样也是符合生成器模式,只不过方法加了synchronized,保证了线程安全。生成器实例:类图:示例:生成旅游计划:旅游时,每天我们需要计划旅游景点、事项、时间、酒店,那一次原创 2020-08-12 18:53:10 · 598 阅读 · 0 评论 -
Java设计模式 - 桥接模式
桥接模式:将接口实现与抽象放在俩个不同的类层次中,是俩个层次可以独立改变,而互相补充。桥接优点:增强了可拓展性,可以在两个维度自由拓展。桥接模式应用:暂无桥接模式和策略模式的区别桥接的目的是让接口实现和抽象层可以分别演化,从而提高移植性;策略的目的是将复杂的算法封装起来,从而便于替换不同的算法。桥接模式往往是为了利用已有的方法或类;策略模式是为了扩展和修改,并提供动态配置。桥接模式强调接口对象仅提供基本操作,而抽象实现中进行接口功能组装;策略模式强调接口...原创 2020-08-12 17:07:13 · 257 阅读 · 0 评论 -
Java设计模式 - 复合模式
目录复合模式:复合优点:复合模式应用:复合模式实例:复合模式:一个设计方案中结合了两个或多个设计模式,来解决一般性或一系列的问题复合优点:不同设计模式组合,使解决方案更具适用性复合模式应用:mvc设计原理:Model:程序主体,包含业务数据及业务逻辑,View:用户界面,Controller:控制器,适配View和Model,View和Controller是策略模式关系,Controller提供策略View和Model是观察者模式。复合模式实例原创 2020-08-07 11:42:19 · 367 阅读 · 0 评论 -
Java设计模式 - 状态模式
目录状态模式:状态优点:状态模式应用:状态实例:类图:示例:代码:上述代码 GitHub 地址:https://github.com/baicun/designPatterns状态模式:能根据内部状态的变化,改变对象的行为,看起来好像修改了类状态优点:特定状态相关的行为局部化,把不同的状态隔离,耦合性低状态模式应用:一个对象存在多个状态(不同状态下行为不同),且状态可相互转换。状态实例:类图:示例:糖果机有如下几种状态:待机、投币、原创 2020-08-06 20:47:16 · 401 阅读 · 0 评论 -
Java设计模式 - 组合模式
目录组合模式:组合优点:组合模式应用:组合实例:上述代码 GitHub 地址:https://github.com/baicun/designPatterns组合模式:处理具有树形结构的设计模式,具体使用一致的方式来处理个别对象以及不同对象组合。组合优点:兼容性强,不必关心处理的是单个对象还是整个组合结构组合模式应用:java.AWT Component中的组合模式组合实例:类图:示例:俩家不同的餐馆合并,需要打印出不同组合的菜单,面包馆呢是.原创 2020-08-06 19:01:44 · 359 阅读 · 0 评论 -
Java设计模式 - 迭代器模式
目录迭代器模式:迭代器优点:迭代器模式应用:迭代器实例:上述代码 GitHub 地址:https://github.com/baicun/designPatterns迭代器模式:提供一种方法顺序访问一个聚合对象中的各个对象迭代器优点:耦合度低,灵活迭代器模式应用:Java内置迭代器迭代器实例:类图:示例:俩家不同的餐馆合并,需要打印出不同组合的菜单,使用迭代器模式设计代码:面包馆-CakeHouseMenu.javapublic.原创 2020-08-05 20:56:13 · 348 阅读 · 0 评论 -
Java设计模式 - 模板模式
模板模式:封装了一个算法步骤,并允许子类为一个或多个步骤方法提供实现模板优点:抽取公共代码模板在超类中实现,方便维护和阅读。模板模式应用:Android的BaseAdapter模板模式和策略模式区别:模板模式侧重步骤封装;策略模式侧重功能封装;模板实例:类图:示例:以喝咖啡和喝茶的步骤为例:喝茶(烧水->冲泡茶叶->把茶水倒入杯子->加糖)喝咖啡(烧水->冲泡咖啡粉->把咖啡倒入杯子->加牛奶)很明显,不同的饮品原创 2020-08-05 19:19:27 · 488 阅读 · 0 评论 -
Java设计模式 - 外观模式
适配器模式:适配器优点:适配器模式应用:适配器实例:对象适配器类适配器上述代码 GitHub 地址:https://github.com/baicun/designPatterns原创 2020-07-31 16:41:50 · 428 阅读 · 0 评论 -
Java设计模式 - 适配器模式
适配器模式:将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容适配器优点:从用户角度看不到被适配者,只是调用适配者转化出来的目标接口,是解耦的。适配器模式应用:世界插座标准的充电转换插头适配器实例:对象适配器使用组合实现(目标接口)类图:目标接口Duck.java:public interface Duck { public void quack(); public void fly();}目标接口实现类-GreenH..原创 2020-07-31 09:06:44 · 317 阅读 · 0 评论 -
Java设计模式 - 命令模式
目录命令模式:命令优点:命令模式应用:命令实例:上述代码 GitHub 地址:https://github.com/baicun/designPatterns命令模式:将请求、命令、动作等封装成对象,这样可以让项目使用这些对象来参数化其他对象、使得命令的请求和执行者解耦。命令优点:操作的请求和操作的执行灵活的分开,降低了系统耦合度,同时拓展性好记录操作记录命令模式应用:智能家庭电器开关设置命令实例:类图:示例描述 :想象手里握着全家电器的遥控器原创 2020-07-30 18:53:01 · 317 阅读 · 0 评论 -
Java设计模式 - 装饰者模式
目录装饰者模式:装饰者模式优点:装饰者模式应用:装饰者实例:上述代码 GitHub 地址:https://github.com/baicun/designPatterns装饰者模式:装饰者模式就像打包一个快递,打包的物体不会变,但会用到不同的包装,最后发货。像这些不同的包装,动态的附加到对象上。装饰者模式优点:装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰比继承更有弹性。装饰者模式应用:Java IO流中的设计装饰者实例:类图:以咖啡店作为原创 2020-07-29 16:38:33 · 207 阅读 · 0 评论 -
Java设计模式 - 观察者模式
观察者模式:观察者模式优点:观察者模式应用:观察者实例:原创 2020-07-28 21:20:27 · 212 阅读 · 0 评论 -
Java设计模式 - 策略模式
策略模式:策略模式优点:策略模式应用:策略实例:原创 2020-07-27 18:49:02 · 181 阅读 · 0 评论 -
Java设计模式-代理模式
目录代理模式:代理模式优点:代理模式应用:代理实例:动态代理 保护代理远程代理上述代码 GitHub 地址:https://github.com/baicun/designPatterns代理模式:为一个对象提供替身,进而可以真正的控制这个对象。代理模式优点:(1)体现了 java 面向对象的编程思想;(2)在调用者和被调用...原创 2018-12-09 21:07:45 · 375 阅读 · 0 评论 -
Java设计模式-单例模式
目录单例模式:单例模式优点:单例模式应用:单例实例:懒汉模式双重检测加锁模式:饿汉模式:内部静态模式:枚举模式:上述代码 GitHub 地址:https://github.com/baicun/designPatterns单例模式:保证在一个JVM中,该对象只有一个实例存在,并提供一个全局的访问点。单例模式优点:1. 一些类创建比较频繁,对于...原创 2018-12-02 19:54:57 · 285 阅读 · 0 评论 -
Java设计模式-简单工厂模式/工厂模式/抽象工厂模式
目录简单工厂模式工厂模式抽象工厂模式上述代码 GitHub 地址:https://github.com/baicun/designPatterns共同点:创建一个类,对同样操作的方法接口进行封装,类似工厂管理生产线等情形。优点:方便管理,易于拓展。应用:数据库访问,我们只需要更换驱动包就可以。简单工厂模式创建一个类,对同样的操作进行封装。示例:公共接口:...原创 2018-12-02 23:46:22 · 332 阅读 · 0 评论