设计模式简单了解

1.什么是设计模式(Design Pattern)
  • 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

  • 通俗来说,设计模式就是设计中的套路

2.为什么使用设计模式
  • 根本原因是为了代码复用,增加可维护性,让代码更容易被他人理解、保证代码可靠性。
3.设计模式的三种类型(共23种设计模式)
  • 创建型
  • 结构型
  • 行为型
4.设计模式的三要素
  1. 模式名称
  2. 问题
  3. 解决方案:解决问题的具体方法(使用类图,清晰明了)
5.类与类之间的关系
  1. 继承:java中使用extends关键字,在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。 
  2. 实现:java中使用implements关键字,在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。 
  3. 依赖:一个类使用到了另一个类,这种关系具有偶然性,临时性,关系较弱。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。 
  4. 关联:两个类之间的强依赖关系,一般是长期性的存在。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。在UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。 
  5. 聚合:  聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。 
  6. 组合:组合关系也是关联的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如人和人的大脑。在UML类图设计中,组合关系以实心菱形加实线箭头表示。  
6.设计模式的总体原则
  • 高内聚,低耦合
  • 低耦合:组件之间的依赖关系较弱
  • 高内聚:组件内部依赖关系较强
7.设计原则
  1. 单一职责原则(SRPSingle Responsibility Principle):一个类最好只做一件事
  2. 开放封闭原则( OCP Open Closed Principle ):模块应该对扩展开放,对修改关闭,即在不修改原代码的基础上对模块进行扩展
  3. 依赖倒转原则( DIP Dependence Inversion Principle ):依赖抽象编程(面向接口编程)
  4. 接口隔离原则( ISP Interface Segregation Principle ):每个接口中的方法尽量的少,不同的功能使用不同的小接口,避免一个接口实现较多没有依赖关系的功能,造成接口污染
  5. 里氏代换原则(LSPLiskovSubstitution Principle):子类必须能够替换父类

8.创建型模式
  1. 工厂模式Factory
  2. 原型模式Prototype
  3. 生成器模式Builder
  4. 单态模式Singleton
9.结构型模式
  1. 外观模式(Facade
  2. 代理模式(Proxy
  3. 适配器模式(Adapter
  4. 组合模式(Composite
  5. 装饰模式(Decorator
  6. 桥接模式(Bridge
  7. 享元模式(Flyweight
10.行为模式
  1. 模板模式(Template
  2. 备忘机制模式(Memento
  3. 观察者模式(Observer
  4. 职责链模式(ChainofResponsibility
  5. 命令模式(Command
  6. 状态模式(State
  7. 策略模式(Strategy
  8. 中介者模式(Mediator
  9. 解释器模式(Interpreter
  10. 参观者模式(Visitor
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值