再学设计模式(一)

设计模式概要

模式的由来-克里斯托弗*亚历山大,《建筑的永恒之道》

将模式的思想引入软件工程方法学-GoF

软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式。是指在软件开发过程中某些可重现问题的有效解决方法,包括问题描述、前置条件、解决方案和结果。

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结。可分为创建型、结构型、行为型三类共23种。

23种设计模式

创建型模式包含:单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式;结构型模式包括:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式、代理模式;行为型模式包括:责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。

面向对象设计原则

单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、合成复用原则、迪米特法则。

UML

统一建模语言主要包括视图、图、模型元素、通用机制几个关键部分。

视图包括用户视图、结构视图、行为视图、实现视图和环境视图。用户视图用于描述系统需求;结构视图标识静态行为,如包、类、对象及之间的关系;行为视图标识动态行为,描述系统组成元素及运行时交互关系;实现视图标识系统逻辑元素分布、物理文件以及之间的关系;环境视图标识物理元素分布、硬件设备以及之间的关系。

图主要包括13种,用例图(用户视图)、类图(结构视图)、对象图(结构视图)、包图(结构视图)、组合结构图(结构视图)、状态图(行为视图)、活动图(行为视图)、顺序图(行为视图)、通信图(行为视图)、定时图(行为视图)、交互概览图(行为视图)、组件图(实现视图)、部署图(环境视图)。

模型元素:类、对象、消息以及之间的关系,包括关联关系、依赖关系、泛化关系等等。

通用机制:注释、信息和语义。

设计原则概述

单一职责原则:一个类只负责一个功能领域中的相应职责(就一个类而言,应该只有一个引起它变化的原因)。【高内聚、低耦合】

开闭原则:对扩展开放,对修改关闭。【面向对象设计的目标、抽象化】【目标】

里氏替换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。【基础】

依赖倒置原则:抽象不应该依赖于细节,细节应该依赖于抽象。换言之,要针对接口编程而不是针对实现编程。【面向对象的主要实现机制之一】关联:依赖注入(构造注入、setter注入、接口注入)【手段】

接口隔离原则:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。

合成复用原则:尽量使用对象组合,而不是继承来达到复用的目的。

迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用。【低耦合】

创建型模式

单例模式-确保对象的唯一性

为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,可以通过单例模式实现。

单例模式类图
单例模式类图

单例模式只包含一个单例角色。在单例类的内部实现只生成一个实例,同时提供一个静态的getInstance()方法,让客户可以访问它的唯一实例;为了防止在外部对单例类实例化,它的构造函数可见性为private;在单例类内部定义了一个Singleton类型的静态对象,作为供外部共享访问的唯一实例。

饿汉式单例与懒汉式单例

饿汉式单例
懒汉式单例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值