zoukankan      html  css  js  c++  java
  • 设计原则20170710

    一、单一职责原则

    一个类或一个函数只做一件事情

    二、里氏替换原则

    所有父类出现的地方,子类都可以替换(在类中调用其他类务必要使用父类或者接口)

    采用里氏替换原则的目的就是增强程序的健壮性

    三、依赖倒置原则

    也就是面向接口编程

    四、接口隔离原则

    接口隔离原则是对接口进行规范约束,尽量使用多个专门的接口(专门的接口是指:提供给每个模块的都应该是单一的接口,提供给几个模块就应该有几个接口),而不是建立一个庞大的臃肿的接口

    五、迪米特原则

    要求类与类之间尽可能没有耦合关系(低耦合)。

    具体要求:

    1.一个类应该对自己需要耦合或调用的类知道的最少(即提供方的public方法尽量少)。只需知道你(被耦合或调用的类)提供的public方法,至于你内部如何复杂和我没关系,我也不关心。

    2.一个类只和朋友类交流,

    朋友类定义:出现在成员变量,方法的输入输出参数中的类称为成员朋友类,而出现在方法内部的类不属于朋友类

    六、开闭原则(最基础也是最核心的原则,前面五种原则都是开闭原则的具体形态)

    1.含义:(模块、抽象、类和方法等软件实体)对扩展开放,对修改关闭

    扩展含义:(一般通过子类或实现接口)扩展

    修改含义:修改已有的代码

    2.开闭原则可以提高复用性,也是面向对象的要求

    3.具体如何应用开闭原则:

    一般通过实现接口或继承抽象类(继承实现类也可以,通过子类覆写方式)来扩展,不修改已有的代码,软件实体上层保持不变,这样风险就小了

    1).抽象约束

    通过接口或者抽象类约束一组可能变化的行为,实现对扩展开放

    包含三层含义:

    I.通过接口或者抽象类约束扩展,不允许出现在接口或抽象类中不存在的public函数

    II.参数类型,引用对象尽量使用接口或抽象类,而不是实现类

    III.抽象层尽量保持稳定,一旦确定即不允许修改

    要实现对扩展开发,首要的条件就是抽象约束

    2).封装变化

    I.将相同的变化封装到一个接口或抽象类中

    II.将不同的变化封装到不同的接口或抽象类中,不应该有两个不同的变化出现在同一个接口或抽象类中。

    后续讲的23个设计模式都是从各个不同的角度对变化进行封装的。

    3).使用配置参数控制程序行为,减少重复开发

    上述对六大设计原则的阐述应该已经很清晰,用专门的例子进而讲解设计原则应当不需要了,而且在实际运用或者具体大的例子中更能体现,所以在后续设计模式中会再次说明这些设计原则

  • 相关阅读:
    数据库中 dbo是什么意思
    常用的设计模式 介绍
    ReferenceEquals和 == 和equals()的比较
    IOC 控制反转模式
    集群和负载均衡
    数据库 读写分离
    C# 中using的几个用途
    WCF ABC
    SQL Server数据库性能优化(三)之 硬件瓶颈分析
    SQL Server数据库性能优化(二)之 索引优化
  • 原文地址:https://www.cnblogs.com/yuweifeng/p/7147311.html
Copyright © 2011-2022 走看看