设计模式
哟哟之名
这个作者很懒,什么都没留下…
展开
-
设计模式:装饰器模式
一、解决什么问题?在不想增加很多子类的前提下拓展类二、菜鸟教程案例三、思考看完这个案例,我感觉自己好迷惘。。。自己目前能理解到的层次是:为了能让类结构较为清晰,Shape接口的子类有其自己的作用,而抽象类ShapeDecorator是作为Shape类的拓展,能破坏里氏替换原则,从而进行自由度更高的拓展。...原创 2021-05-30 23:17:20 · 65 阅读 · 0 评论 -
设计模式:组合模式
一、解决什么问题?组合模式使得用户对单个对象和组合对象的使用具有一致性。二、菜鸟教程案例原创 2021-05-28 23:38:47 · 72 阅读 · 0 评论 -
设计模式:过滤器模式
一、解决什么问题?使用不同的标准来过滤一组对象。二、菜鸟教程案例定义一个过滤器接口Criteria,它规定一个方法meetCriteria,接收的形参为List,返回的结果也为List编写Criteria的实现类,性别、单身、And、Or的过滤器传入PersonList,得出自己想要的结果集List三、思考这个模式非常的浅显易懂。...原创 2021-05-27 21:41:47 · 83 阅读 · 0 评论 -
设计模式:桥接模式
一、解决什么问题?把抽象化与实现化解耦,使得二者可以独立变化。二、菜鸟教程案例说真的,看到这个图,我有点茫然。这不就是Shape类将DrawAPI接口给组合进来了吗???确实,Shape的变化与DrawAPI的变化,互相没有影响。三、思考设计模式的学习,目前体会均不深刻,需要大量的实战才能体会深刻。...原创 2021-05-26 23:22:00 · 79 阅读 · 0 评论 -
设计模式:适配器模式
一、解决什么问题?系统需要使用现有的类,而这个类的接口无法满足系统的需要。二、菜鸟教程案例MediaPlayer接口、AudioPlayer类都是原本已存在的;但是AudioPlayer只能播放mp3格式的视频。现在的需求是,利用现有的AudioPlayer播放 mp4、vlc 格式的视频!关键步骤就是新增一个适配器类MediaAdapter,它实现了与AudioPlayer相同的接口,它自己聚合了AdvancedMediaPlayer这个接口(这个接口支持mp4与vlc格式的播放功能)原创 2021-05-25 23:29:50 · 89 阅读 · 0 评论 -
设计模式:原型模式
一、解决什么问题?用于创建重复的对象,同时又能保证性能。二、如何使用?首先定义一个User类,它必须实现了Cloneable接口,重写了clone()方法。public class User implements Cloneable { private String name; private int age; @Override protected Object clone() throws CloneNotSupportedException {原创 2021-05-24 23:22:49 · 316 阅读 · 7 评论 -
设计模式:建造者模式
一、前言本文仅作为个人笔记用,建议大家自行前往菜鸟教程学习。今天在菜鸟教程查看了建造者模式的代码,虽然类结构看起来非常清晰,但总是觉得get不到它的精妙之处,又或者说不知道它到底能解决什么样的问题。今天先做个笔记在这里,以后有了更深的体会再做修改。二、类图关系三、类图解释该图以麦当劳快餐店的套餐作为案例。Meal 代表套餐的种类,不同种类的套餐会有不同的元素搭配。例如鸡腿堡+可乐是肉类套餐;蔬菜堡+百事是素食套餐;Item是商品的公共接口,定义了三个核心方法。商品名称、价格、包装Packi原创 2021-05-22 22:52:14 · 95 阅读 · 0 评论 -
UML类图总结
一、类之间的关系1、依赖关系dependency:(------------>)A类引用B类A类中的方法args、方法returnType是B类A类中的成员变量有B类A类的某个方法中,局部变量有B类2、泛化(继承)generalization:(───▷)它是依赖关系的特例3、实现implementation:(----------------▷)它是依赖关系的特例4、关联association:(→ or ─)它是依赖关系的特例具有导航性,例如:A有B,B无A原创 2020-11-21 23:41:28 · 191 阅读 · 0 评论