zoukankan      html  css  js  c++  java
  • 设计模式(1)---基本概述

    1.什么是设计模式?

      java设计模式是一套被反复使用,多数人知晓的经过分类编目的代码设计经验的总结。本质上是面向对象设计原则的实际运用,是对类的封装性、继承性、多态性以及类的关联关系和组合关系的充分理解。它于1994年由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人(四人帮)出版的《设计模式 - 可复用的面向对象软件元素》一书中被首次提出。因为4位作者合称GOF,所以23种设计模式也叫做GOF23

    2.设计模式的作用?

      1.使用设计模式的主要作用是为了提高代码的可复用性、可读性、稳定性和可维护性。

      2.是我们的程序设计更加标准化、代码更加工程化,大大增加开发效率,缩短开发周期。

    3.设计模式分类?

    序号模式 & 描述包含
    1创建型模式
    这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
    • 工厂模式(Factory Pattern)
    • 抽象工厂模式(Abstract Factory Pattern)
    • 单例模式(Singleton Pattern)
    • 建造者模式(Builder Pattern)
    • 原型模式(Prototype Pattern)
    2结构型模式
    这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
    • 适配器模式(Adapter Pattern)
    • 桥接模式(Bridge 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)
    • 策略模式(Strategy Pattern)
    • 模板方法模式(Template Pattern)
    • 访问者模式(Visitor Pattern)

    4.OOP7大原则?

      OOP也就是我们常说的面向对象设计,Java种的OOP会遵循以下7大原则:

    • 开闭原则
      对扩展开发,对修改关闭。

    • 单一职责原则
      控制类的粒度大小,将对象解耦,提高其内聚性。

    • 里氏替换原则
      父类能够出现的地方可以使用子类代替,子类拥有父类所有的属性和方法。子类可以拥有和扩展父类的功能,但是不能修改父类的功能。

    • 依赖倒置原则
      程序要面向抽象接口编程而不是面向具体实现编程。下图反映了符合和不符合依赖倒置原则的情况,不符合此原则的洗衣服就只能洗衣服,洗袜子就只能洗袜子。
      在这里插入图片描述

    • 接口隔离原则
      为类建立它需要的接口,也就是类不应该依赖它不需要的接口。

    • 迪米特原则
      一个类应该与另一个类有最小的关联,否则一个类发生改变,则其所依赖的类均需要改变(A是B的上司,B是C的上司,A要传达一个命令给C,按照迪米特原则就是A传达给B,B传达给C)。

    • 合成复用原则
      尽量使用组合或者聚合等关联关系去实现(在一个新对象中使用已经存在的对象,使之成为新对象的一部分),然后再考虑使用继承关系实现(子类继承父类,父类将所有的实现细节暴露给子类,父类发生改变,则子类需要相应的改变,不利于类的扩展)。

  • 相关阅读:
    “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
    深入浅出 eBPF 安全项目 Tracee
    Unity3d开发的知名大型游戏案例
    Unity 3D 拥有强大的编辑界面
    Unity 3D物理引擎详解
    Unity 3D图形用户界面及常用控件
    Unity 3D的视图与相应的基础操作方法
    Unity Technologies 公司开发的三维游戏制作引擎——Unity 3D
    重学计算机
    windows cmd用户操作,添加,设备管理员组,允许修改密码
  • 原文地址:https://www.cnblogs.com/wgty/p/12810441.html
Copyright © 2011-2022 走看看