设计模式基础入门

Posted 爱学习的大鱼

tags:

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

设计模式基础

设计模式简介

软件工程中,设计模式(design pattern)是对软件中普遍存在(反复出现)的各种问题,所提出的解决方案,是由Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人在1990年代冲工程建筑领域引入计算机科学的

设计模式解决问题

  • 客户提出新功能 【使用设计模式软件具有更好的扩展性】
  • 原公司程序员离职,项目接手【使用设计模式的代码更具有可维护性(可读性和规范性)】

发展过程

面向对象(oo) --> 功能模块 【设计模式 + 算法】 --> 框架【多种设计模式】--> 架构【服务器集群】

设计模式的目的

编写软件的过程中,程序面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性等多方面的挑战,设计模式用为让程序(软件)具有更好:

  • 代码重用性
  • 可读性
  • 可扩展性
  • 可靠性
  • 使程序呈现高内聚、低耦合的特性

设计模式七大原则

  • 单一职责原则 (Single Responsibility Principle)
  • 开放-关闭原则 (Open-Closed Principle)
  • 里氏替换原则 (Liskov Substitution Principle)
  • 依赖倒转原则 (Dependence Inversion Principle)
  • 接口隔离原则 (Interface Segregation Principle)
  • 迪米特法则(Law Of Demeter)
  • 组合/聚合复用原则 (Composite/Aggregate Reuse Principle)

详情解析→ 设计模式概念和七大原则

设计原则核心思想

  • 找出应用中可能需要变化之处,把它们独立出来,不要和哪些不需要变化的代码混在一起
  • 针对接口编程,而不是针对实现编程
  • 为了交互对象之间的松耦合设计而努力

UML类图

UML基本介绍

  • UML(Unified modeling language) (统一建模语言), 是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果
  • UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如下图:

依赖-dependency

public class PersonServiceBean 
    private PersonDao personDao;

    public void save(Person person) 

    

    public IDCard getIDCard(Integer personId) 
        return null;
    

    public void modify() 
        Department department = new Department();
    

泛化(继承)-Gerneralization

public abstract class DaoSupport 
    public void save(Object entity) 
    

    public void delete(Object id) 
    

public class PersonServiceBean extends DaoSupport

实现-Realization

public interface PersonService 
    public void delete(Integer id);
public class PersonServiceBean implements PersonService
    @Override
    public void delete(Integer id) 

    

聚合-Aggregation

整体和部分可分割

public class Computer 

    private Mouse mouse;
    private Monitor monitor;

    public void setMouse(Mouse mouse) 
        this.mouse = mouse;
    

    public void setMonitor(Monitor monitor) 
        this.monitor = monitor;
    

组合-Composite

整体和部分不可分割

public class Computer 
    private Mouse mouse = new Mouse();
    private Monitor monitor = new Monitor();

设计模式类型

设计模式可以分为三种类型
● 创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。
● 结构型模式:把类或对象结合在一起形成一个更大的结构。
● 行为型模式:类和对象如何交互,及划分责任和算法。

类型 所包含设计模式
创建型模式 单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式
结构型模式 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
行为型模式 模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、职责模式

以上是关于设计模式基础入门的主要内容,如果未能解决你的问题,请参考以下文章

架构设计之「 微服务入门 」

JavaScript 基础快速入门

SpringMVC 入门

工程方面

防劣化机制向前兼容...今日头条前端架构设计解读

web框架之--Django基础入门