java设计模式

设计模式# 系列文章目录



前言

如何去解决某种特定情景中重复发生的某个问题?
# 一、设计模式是什么?

设计模式提供解决方案 解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的可复用的设计方案

二、设计模式的四个基本要素

1.名称

名称:高度概括该模式的本质

2.问题

描述了何时使用模式

3.方案

描述了设计模式

4.效果

描述模式的应用效果以及使用模式应当权衡利弊的问题
代码如下(示例):

三、面向对象的的几个基本原则

1.面向抽象原则

当设计一个类时,不让该类面向具体的类,而是面向抽象类和接口(使用抽象类或者接口声明的变量)

2.开闭原则

对扩展开放,对修改关闭,当一个设计中增加新的模块时,不需要修改现有的模块

3.多用组合少用继承

继承相当于父与子的关系,如果父出了问题会影响到子的关系,并且继承的耦合太高。
组合相当于朋友与朋友的关系,一个朋友出了问题并不会影响到另一个朋友。

4.高内聚低耦合

高内聚:类中的方法是一组相关的行为,称为高内聚(高内聚便于类的维护)
低耦合:尽量不要让一个类里面含有太多其他类的实例引用,(防止出现修改一个类而影响到其他类)

四、设计模式的类型

1.创建型模式(对象怎么来)

这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)

2.结构型模式(对象和谁有关)

结构性模式涉及如何组合类和对象以形成更大的结构,和类有关的结构型模型涉及如何合理的使用继承机制;和对象有关的结构性模型涉及如何合理的使用对象组合机制。
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
过滤器模式(Filter、Criteria Pattern)
组合模式(Composite Pattern)
装饰器模式(Decorator Pattern)
外观模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)

3.行为型模式(对象与对象在干嘛)

行为模式涉及怎样合理的设计对象之间的交互通信,以及合理的为对象分配职责
责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
状态模式(State Pattern)
空对象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
访问者模式(Visitor Pattern)

五、UML类图

1.什么是UML类图

用于描述一个系统的静态结构。一个类图中通常包含有类的UML图,接口的UML图,接口的UML图以及泛化关系的UML图,关联关系的UML图,依赖关系的UML图和实现关系的UML图。

2.如何画UML图

在这里插入图片描述

3.泛化关系

泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系
(1)继承
介绍:
继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
表示方法:
继承使用空心三角形+实线表示。
在这里插入图片描述

4.关联关系

如果A类中的成员变量用B类接口实现来声明的变量
表示方法:
关联关系用实线箭头表示。
在这里插入图片描述

5.依赖关系

如果A类中的某个方法的参数是用B类来声明或某个方法返回的数据类型是B类型的
表示方法:
依赖关系用虚线箭头表示。
在这里插入图片描述

6.实现关系

一个类实现了一个接口,类和接口的关系是实现
表示方法
使用空心三角形+虚线表示
在这里插入图片描述

7.聚合关系

表示方法:
聚合关系用空心的菱形+实线箭头表示。
在这里插入图片描述

8.组合关系

组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值