• 设计模式1 设计模式概述


    什么是设计模式

    设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。当你要设计的程序的一些要求或者特点与这些经典设计模式解决的问题相同或者相似的时候就可以使用它们来解决。这些模式依照一些原则而设计,使用这些模式编写的程序实现了代码复用,建造的系统大厦稳定可靠,易扩展维护。

    如今谈到设计模式一般都是说的23种设计模式,它们可以分成3个大类

    创建型(5种)
    工厂方法模式,抽象工厂模式,单例模式,原型模式,建造者模式

    结构型(7种)
    装饰器模式,外观模式,适配器模式,桥接模式,组合模式,享元模式

    行为型(11种)
    策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

    设计模式依照原则

    单一职责原则

    单一职责的原则的准确解释是: 就一个类而言,应该仅有一个引起它变化的原因。我的简单理解是: 一个类或者一个函数仅完成一个特定功能。

    接口隔离原则

    使用多个隔离的接口,比使用单个接口要好。如果当一个类要通过接口实现一些功能的时候,应该实现只具有这些功能函数的接口,不实现还拥有其他功能的接口。如果原来的接口包含的功能过多,可以将他们拆解成多个接口。

    依赖倒置原则

    高层模块不应该依赖底层模块,两个都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象。

    里氏替换原则

    一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里把父类替换成它的子类,程序的行为没有变化。也就是说,在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类。(有点多态的意思)

    迪米特法则

    又称最少知道原则。是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转法这个调用。

    开放关闭原则

    对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,这样做是为了使程序的扩展性好,易于维护和升级。一个系统或者程序,无论最初设计的多好随着时间都会有一些新的需求产生也就代表说需要添加新的功能,这时我们不要修改原有代码以导致在添加新功能的同时系统不能运行,我们要做的是添加一些新的代码进行扩展。那么新添加的代码如何完美的融合到原来的系统或者程序就需要我们在设计的时候考虑到添加功能情况,设置好接口。设置接口就需要用到里氏替换原则,依赖倒置原则。

    合成复用原则

    尽量使用组合/聚合的方式,而不是使用继承。

    推荐学习的知识

    UML类图的几种关系(泛化,实现,关联,聚合,组合,依赖)
    http://www.uml.org.cn/oobject/201609062.asp
    java面向对象的三个特点(封装,继承,多态)

  • 相关阅读:
    IoC 中 car 对象的配置如下,现在要添加 user 对象,并且将 car 注入到 user 中,正确的配置是?
    说说 IoC 中的继承和 Java 继承的区别
    bean 的 scope 有几种类型?请详细列举。
    简单谈谈 IoC 容器的原理
    谈谈你对 Spring IoC 和 DI 的理解,它们有什么区别?
    day13-14 内置函数
    day12 生成器(重要)
    day11 闭包和迭代器
    day10 函数进阶
    day09 函数
  • 原文地址:https://www.cnblogs.com/zhangchenwei/p/12377605.html
Copyright © 2020-2023  润新知