• 设计原则


    {容易阅读(简约和注释),容易维护(需求变更进行修改或扩展),容易复用(可移植性)}

    面向对象设计:面向对象--活字印刷

    粒度:可复用性

    单一职责原则:就一个类而言,应该有且仅有【一个引起它变化的原因。

                        软件设计,真正要做的许多内容,就是发现职责并把那些职责相互分离。其实要去判断是否应该分离出类来,也不难,那就是【如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责, 就应该考虑类的职责分离】。

    开放-封闭原则:对于扩展是开放的,对于更改是封闭的。抽象处理,就是提取接口类处理,[拒绝不成熟的抽象和抽象本身一样重要!切记!!]

    依赖倒置原则:高层模块不应该依赖低层模块,两个都应该依赖抽象。抽象不应该依赖细节(实现),细节(实现)应该依赖抽象。  这话绕口,说白了,就是【要针对接口编程,不要针对实现编程】。举例:电脑类似针对接口编程,收音机类似于针对实现编程。

    迪米特法则:(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.

    ① 在类的划分上,应该创建有弱耦合的类;
    ② 在类的结构设计上,每一个类都应当尽量降低成员的访问权限;
    ③ 在类的设计上,只要有可能,一个类应当设计成不变类;
    ④ 在对其他类的引用上,一个对象对其它对象的引用应当降到最低;
    ⑤ 尽量降低类的访问权限;
    ⑥ 谨慎使用序列化功能;
    ⑦ 不要暴露类成员,而应该提供相应的访问器(属性)。

        其根本思想是强调了类之间的松耦合,我们在程序设计时,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,波及的有关系的类十分有限。也就是说,信息的隐藏促进了软件的复用

  • 相关阅读:
    $Noip2018/Luogu5022$ 旅行
    $Noip2018/Luogu5020$ 货币系统 $dp$
    $Noip2018/Luogu5021$ 赛道修建 二分+树形
    $Noip2018/Luogu5019/Luogu1969$ 铺设道路
    $Poj1220/AcWing124 Number Base Convertion$ 进制转换+高精除
    $Poj1050 To the Max$
    $Poj1723/AcWing123 Soldiers$ 排序
    luogu质数距离
    模板线性筛
    CERC2016 bfs 最大生瓶颈边 lca
  • 原文地址:https://www.cnblogs.com/book-gary/p/3591478.html
Copyright © 2020-2023  润新知