zoukankan      html  css  js  c++  java
  • 设计模式--六大原则

    面向对象的设计的几个目标:

    1. 可扩展性,比较容易添加新的功能;
    2. 灵活性,容易添加新的功能代码修改平稳地发生;
    3. 可插入性,容易将一个类处出来,同时接入另一个同样接口的类。

    终极的判断软件设计质量的标准:

    高内聚,低耦合

    1. 耦合性:模块之间的关系紧密程度。越紧密,耦合性越强,模块独立性越差,取决于模块间接口的复杂性,调用的方式,传递的信息;
    2. 内聚性:模块内部关系紧密为高内聚;
    3. 高内聚:单一模块内部相关性较强,只负责单独任务,不可分割;
    4. 低耦合:尽可能多模块之间独立性较强。

    设计基本原则:

    1,单一职责原则(Single-Responsibility Principle):一个类只处理一个职责,也就是说不要将很多东西都放在一个类里面,尽可能拆分处理,让每个类只负责某一部分的功能。

    2,里氏置换原则(Liskov Substitution Principle):Base类及其集成类的关系,子类除了新增尽可能不去重写和重载父类的方法,也就是说不要破坏父类的功能,通过不同的实现子类来进行扩展,并避免对父类进行修改。

    3,依赖倒置原则(Dependence Inversion Principle):说的是接口,抽象类及其实现类之间的关系,也就是说接口,抽象类不负责具体逻辑,具体逻辑交给继承或者实现类去处理,实现类依赖于接口和抽象类,而抽象类不依赖于实现类,减少对具体实现的耦合,通过抽象类或者接口实现解耦合

    网上具体讲解的实例:http://www.cnblogs.com/lzh_527/archive/2012/02/15/2352939.html

    4,接口隔离原则(Interface Segregation Principle):也就是说尽可能避免一个类和接口里面多个方法之间的关系,将接口合理细化,但不要过度细化。

    5,迪米特原则(Law of Demeter):减少类与类之间的耦合。

    6,开闭原则(open-Closed Principle):对修改关闭,对扩展开放,也就是说在业务迭代过程中,不应该去修改原有的业务逻辑,而应该通过继承来在原来的基础上进行扩展,而不对原有逻辑进行修改,当然原有逻辑是错的不包括在内。

  • 相关阅读:
    python 学习——sqlalchemy 模块
    python学习——数据库基本知识mysql
    算法设计22——并行算法2 实际应用中的优化
    Perl 学习
    python学习——装饰器、生成器、迭代器
    算法设计19—— 全对最短路径 Floyd算法
    asp.net Core 使用过滤器判断请求客户端是否为移动端,并实现PC端和移动端请求映射和自动跳转
    在windows平台使用Apache James搭建邮件服务器以及使用C#向外网发送邮件
    asp.net core3.1策略授权问题
    Unity调用安卓中的方法遇到的问题
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/5406109.html
Copyright © 2011-2022 走看看