美文网首页
Java内功修炼之UML类图和六大基本原则

Java内功修炼之UML类图和六大基本原则

作者: 古宇强 | 来源:发表于2018-12-23 12:31 被阅读13次
    1.前言

    私认为对于学习Java的程序员来说在学习了面向对象之后就应该马上去学习uml类图以及面向对象的六大基本原则(设计模式也可以挑着看),而且这种行动是越早越好的,因为java的编程范式是面向对象,编程的过程中都会跟对象打交道,而六大基本原则是面向对象编程必须要遵守的标准,如果能在敲代码时不断地应用这些标准,甚至内化成一种思维习惯,那么一定会写出更加优雅健壮的代码。

    2.类与类之间的关系

    实现,继承(简记:实继->实际)
    依赖,关联(依关->衣冠)
    聚合,组合(聚组->剧组)

    实现继承很好理解;依赖是指方法的形式参数以及局部变量引用到的类,而关联是指成员变量引用到的其他类;聚合组合是更强的一种关联关系,也是整体和部分的关系,对于两者的区分,网上有很多很好的类比:聚合关系好比桌子跟椅子的关系,桌子不是非要椅子不可,而椅子也不是非要桌子不可;而组合关系好比手脚大脑和身体的关系,必须完整地组合起来才有用,两者的区别就在于如果单独独立出去是否还有一定的功能,如果手脱离了身体和大脑,那就是一直废手了,没啥用。

    总结:"实际衣冠剧组" 可以简记成某个剧组的名字

    3.UML类图

    有了第二部分对于类之间关系的认识,UML类图也就不难理解了,主要记住每种类关系对应的线的虚实和箭头形状、类的变量和方法在图中的位置以及访问权限(+代表public -表示private)
    具体可以参考一下这位作者的文章,写的很详细了

    4.面向对象的六大基本原则

    1. 单一职责原则
    一个类只负责一个功能。都说这个原则是最简单但也最难用好的一个原则,我觉得难用好是因为有时候很难把握一个功能大小的程度。举个栗子:在一个用来展示图片的类中还有下载图片的方法,那么这个类就没有遵循单一职责原则了,应该把下载图片的功能独立出去放到下载相关的类中。
    好处就是高内聚低耦合

    2. 开闭原则
    对扩展开放,对修改关闭:支持增加新类来扩展功能和状态,反对直接修改原来的类扩展功能和状态。直接修改原代码扩展功能,最直接的后果就是会造成类越来越庞大,后期越来越不好维护,这中间还可能伴随一些未知的bug

    3. 里氏替换原则
    面向对象中多态的利用,凡是能用父类的地方都能够用子类代替,这是实现开闭原则的基础

    4. 依赖导致原则
    抽象不依赖于细节,细节依赖于抽象。抽象是指抽象类/接口,细节是指具体的实现类,一般都能做到抽象不依赖于细节,主要是要做到细节依赖于抽象,这样就能通过增加新的类,在里氏替换原则的基础上扩展功能。这是实现开闭原则的手段

    5. 接口隔离原则
    接口中定义的功能应尽可能单一,这样接口的实现类的功能才是符合单一职责原则

    6. 迪米特原则
    也叫最少知道原则,在实现功能需求的基础上,尽可能少的与类直接依赖关联,可以通过再增加一个类作为中间人实现间接相关,能够减小类的复杂性,提高可维护性

    5.后记

    学以致用,这些原则应该尽可能体现在编码的过程中,养成良好的思维习惯

    相关文章

      网友评论

          本文标题:Java内功修炼之UML类图和六大基本原则

          本文链接:https://www.haomeiwen.com/subject/vvbgkqtx.html