定义:上级模块不能依赖于下级模块,它们都必须依赖于抽象(上级模块对下级模块间的联系进行分析处理)

这都是由于高凝聚低结合原则。编程必须基本遵守

分类原则:一种人只做一种事。

例如:

人能做的事情有很多:拍代码,唱歌,跳舞,打篮球……把人当成一种,里面的方法太多太杂了。有程序员、NBA球员等多种类型。这样类就具体化了,能做的事情也变得具体了,如果需要使用哪个方法,就可以知道从哪个类调用。

打开提供程序提供,实现类可以确定其行为。关闭:调用方调用时,不需要尽可能修改代码。

定义:软件实体如类、模块和函数必须对扩展开放,并对更改关闭。在这里,扩展打开对提供者说,修改关闭对调用方说。

例如:

子类的特殊定义:父方法不抽象,不能重新加载子类。但是,如果父母有抽象的方法,那么孩子就必须实现父母的抽象方法,孩子也可以写自己的方法

白话:子类可以扩展父代功能,但不能更改父代的现有功能。

[实时新闻]

有四个原则:。

子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。

子类可以增加自己的方法。

如果子类中的方法重新加载父类中的方法,则方法的预条件将比父方法中的输入参数更宽松。

如果子方法实现父方法,则方法的背景条件比父方法严格或与父方法相同。

示例:子类继承父类,但不会更改父类的非抽象方法

定义:上级模块不能依赖于下级模块,它们都必须依赖于抽象。抽象不能依赖细节,细节要依赖抽象。

传统:没有接口,创建类和类之间的对象。当需求发生变化时,类需要重写,其他类也需要修改

Spring框架:使用注解接口bean,这样实现类可以自由更改,最后的实现类实现这个接口就可以了

细化接口,使接口中定义的方法在实现类中不可用。

示例:设备芯片、设备名称、设备内存等接口的定义方法。这样的接口只能通过电脑、手机等实现类来实现,但对于风扇、支架等一般的设备实现类来说,确实只有设备名是有效的方法。因此,需要将接口细分为两个接口。

优先使用对象组合,而不是通过继承进行复用。

案例:如果A类写了想要的方法,为了不在B类中重复写代码,可以在B类中设置将A类对象设置为参数的方法中通过对象在A类中获取想要的方法。由于安全隐患较大,不建议继承。例:A中有信息

例如:

每个软件单位对其他单位只有最少的知识,仅限于与该单位密切相关的软件单位。

简而言之,一个类/模块对其他类/模块的交互越少越好。类更改后,相关类应尽量不受影响如果更改了方法名称、字段名称等,可能还需要修改使用其他方法或字段的类。这使得我们在维护项目时更加容易。

白话:在设计方法参数时,保证方法不多给多余的参数。例如:方法只需一个用户的ip地址即可执行,方法参数不写需要输入用户对象,然后在方法中通过对象调用该ip,在调用方法之前取出用户对象的ip调用方法作为参数。

定义:上级模块不能依赖于下级模块,它们都必须依赖于抽象

例如:

加号

反面教材


发表评论

Copyright 2002-2022 by 尔韵网络游戏门户网(琼ICP备2022001899号-3).All Rights Reserved.