首页 > 其他分享 >设计模式概述

设计模式概述

时间:2022-10-03 21:35:25浏览次数:47  
标签:重构 对象 创建 模式 概述 设计模式 变化

GOF-23 模式分类

从目的来看:

  • 创建型(Creational)模式:将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击。
  • 结构型(Structural)模式:通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。
  • 行为型(Behavioral)模式:通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击。

从范围来看:

  • 类模式处理类与子类的静态关系。 //继承
  • 对象模式处理对象间的动态关系。 //组合

从封装变化角度对模式分类

组件协作:

主要解决的是他们之间的一种协作关系。

• Template Method // 模板方法模式
• Observer / Event // 观察者模式
• trategy // 策略模式

单一职责:

主要解决的是类与类之间的责任划分。

• Decorator
• Bridge

对象创建:

主要解决的是对象创建过程中的依赖关系。

• Factory Method
• Abstract Factory
• Prototype
• Builder

对象性能:

解决性能问题。

• Singleton
• Flyweight

接口隔离:

• Façade
• Proxy
• Mediator
• Adapter

状态变化:

• Memento
• State

数据结构:

• Composite
• Iterator
• Chain of
• Resposibility

行为变化:

• Command
• Visitor

领域问题:

• Interpreter

重构获得模式 Refactoring to Patterns

  • 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”指是那些可以满足 “应对变化,提高复用”的设计 。
  • 现代软件设计的特征是“需求的频繁变化”。设计模式的要点是“寻找变化点,然后在变化点处应用设计模式,从而来更好地应对需求的变化”.“什么时候、什么地点应用设计模式”比“理解设计模式结构本身”更为重要。 //寻找变化点,将它隔离开。
  • 设计模式的应用不宜先入为主,一上来就使用设计模式是对设计模式的最大误用。没有一步到位的设计模式。敏捷软件开发实践提倡的“Refactoring to Patterns(重构到模式)”是目前普遍公认的最好的使用设计模式的方法。//迭代重构的方式一步步到模式。

推荐图书

设计模式概述_DesignPattern

重构关键技法

  1. 静态 -> 动态
  2. 早绑定 -> 晚绑定
  3. 继承 -> 组合
  4. 编译时依赖 -> 运行时依赖
  5. 紧耦合 -> 松耦合

上面五种,从不同角度看待同一个问题。



参考:GeekBand



标签:重构,对象,创建,模式,概述,设计模式,变化
From: https://blog.51cto.com/u_15698411/5730489

相关文章

  • Java设计模式 —— 建造者模式
    8建造者模式8.1建造者模式概述BuilderPattern:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式可以将部件本身和它们的组......
  • 抽象类及模板设计模式
    1基本介绍当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类当父类的一些方法不能确定时,可以用abstract关键字来修饰该方......
  • Go设计模式学习准备——下载bilibili合集视频
    需求前段时间面试,被问到设计模式。说实话虽然了解面向对象、多态,但突然被问到设计模式,还要说清解决什么问题,自己是有些懵的,毕竟实习主要工作是在原项目基础进行CRUD,自己还......
  • 计算机操作系统基本概述
    基本特征并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作......
  • Java设计模式 —— 原型模式
    7原型模式7.1原型模式概述PrototypePattern:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。原型模式的工作原理:将一个原型对象传给创建......
  • 设计模式介绍和单一职责原则
    设计模式的目的编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好代码重用性(即:相......
  • 【Linux】学习-01-Linux概述
    1、KailLinux:安全渗透测试使用,黑客等安全相关的人员所擅长的技术。2、补天:漏洞响应平台。https://www.butian.net/3、红帽认证工程师:Linux领域广为认可的专业技术认证......
  • 接口中的静态方法——模板方法设计模式
    先看一个简单的例子,相信看完下例,你会对模板方法有一个初步的了解interfaceOperations{voidexecute();//接口中的静态方法staticvoidshow(String......
  • 大话设计模式
    本文用简洁的方法,总结常用的设计模式设计模式主要分成三大类,每一类都有一些具体模式,总结如下创建型模式抽象工厂模式生成器模式原型模式单例模式结构型模式行......
  • 单例设计模式(懒汉式or饿汉式)
    1什么是设计模式静态方法和属性的经典使用设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,......