设计模式_菜鸟教程

Posted 知直只志的妙妙屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式_菜鸟教程相关的知识,希望对你有一定的参考价值。

  • 建造者模式:使用多个简单的对象一步一步构建成一个复杂的对象与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。

    • 一个典型的套餐可以是一个汉堡(Burger)和一杯冷饮(Cold drink)。汉堡(Burger)可以是素食汉堡(Veg Burger)或鸡肉汉堡(Chicken Burger),它们是包在纸盒中。冷饮(Cold drink)可以是可口可乐(coke)或百事可乐(pepsi),它们是装在瓶子中。

    • 我们将创建一个表示食物条目(比如汉堡和冷饮)的 Item 接口和实现 Item 接口的实体类,以及一个表示食物包装的 Packing 接口和实现 Packing 接口的实体类,汉堡是包在纸盒中,冷饮是装在瓶子中。

    • 然后我们创建一个 Meal 类,带有 Item 的 ArrayList 和一个通过结合 Item 来创建不同类型的 Meal 对象的 MealBuilderBuilderPatternDemo,我们的演示类使用 MealBuilder 来创建一个 Meal

  • 原型模式:用于创建重复的对象,同时又能保证性能。实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。一般配合工厂模式使用。

    • 我们将创建一个抽象类 Shape 和扩展了 Shape 类的实体类。下一步是定义类 ShapeCache,该类把 shape 对象存储在一个 Hashtable 中,并在请求的时候返回它们的克隆。

    • PrototypePatternDemo,我们的演示类使用 ShapeCache 类来获取 Shape 对象。

设计模式_菜鸟教程(二)

  • 适配器模式:作为两个不兼容的接口之间的桥梁,结合了两个独立接口的功能过多使用会使系统变得零乱,不是必要尽量不要用。

    • 我们有一个 MediaPlayer 接口和一个实现了 MediaPlayer 接口的实体类 AudioPlayer。默认情况下,AudioPlayer 可以播放 mp3 格式的音频文件。

    • 我们还有另一个接口 AdvancedMediaPlayer 和实现了 AdvancedMediaPlayer 接口的实体类。该类可以播放 vlc 和 mp4 格式的文件。

    • 我们想要让 AudioPlayer 播放其他格式的音频文件。为了实现这个功能,我们需要创建一个实现了 MediaPlayer 接口的适配器类 MediaAdapter,并使用 AdvancedMediaPlayer 对象来播放所需的格式。

    • AudioPlayer 使用适配器类 MediaAdapter 传递所需的音频类型,不需要知道能播放所需格式音频的实际类。AdapterPatternDemo,我们的演示类使用 AudioPlayer 类来播放各种格式。

设计模式_菜鸟教程(二)

  • 桥接模式:用于把抽象化与实现化解耦,使得二者可以独立变化,通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。适合用于两个独立变化的模块

    • 我们有一个作为桥接实现的 DrawAPI 接口和实现了 DrawAPI 接口的实体类 RedCircleGreenCircleShape 是一个抽象类,将使用 DrawAPI 的对象。BridgePatternDemo,我们的演示类使用 Shape 类来画出不同颜色的圆。

设计模式_菜鸟教程(二)

  • 过滤器模式:允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来,它结合多个标准来获得单一标准

    • 我们将创建一个 Person 对象、Criteria 接口和实现了该接口的实体类,来过滤 Person 对象的列表CriteriaPatternDemo,我们的演示类使用 Criteria 对象,基于各种标准和它们的结合来过滤 Person 对象的列表。

  • 组合模式(部分整体模式):把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次,创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式使得用户对单个对象和组合对象的使用具有一致性。会违反依赖倒置原则。

    • 我们有一个类 Employee,该类被当作组合模型类。CompositePatternDemo,我们的演示类使用 Employee 类来添加部门层次结构,并打印所有员工。



以上是关于设计模式_菜鸟教程的主要内容,如果未能解决你的问题,请参考以下文章

PHP 教程_编程入门自学教程_菜鸟教程-免费教程分享

Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_汇总贴

WPF教程_编程入门自学教程_菜鸟教程-免费教程分享

Unix教程_编程入门自学教程_菜鸟教程-免费教程分享

Ruby教程_编程入门自学教程_菜鸟教程-免费教程分享

求软考软件设计师考试视频教程