这都是由于高凝聚低结合原则。编程必须基本遵守
分类原则:一种人只做一种事。
例如:
人能做的事情有很多:拍代码,唱歌,跳舞,打篮球……把人当成一种,里面的方法太多太杂了。有程序员、NBA球员等多种类型。这样类就具体化了,能做的事情也变得具体了,如果需要使用哪个方法,就可以知道从哪个类调用。
打开提供程序提供,实现类可以确定其行为。关闭:调用方调用时,不需要尽可能修改代码。
定义:软件实体如类、模块和函数必须对扩展开放,并对更改关闭。在这里,扩展打开对提供者说,修改关闭对调用方说。
例如:
子类的特殊定义:父方法不抽象,不能重新加载子类。但是,如果父母有抽象的方法,那么孩子就必须实现父母的抽象方法,孩子也可以写自己的方法
白话:子类可以扩展父代功能,但不能更改父代的现有功能。
[实时新闻]
有四个原则:。子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
子类可以增加自己的方法。
如果子类中的方法重新加载父类中的方法,则方法的预条件将比父方法中的输入参数更宽松。
如果子方法实现父方法,则方法的背景条件比父方法严格或与父方法相同。
示例:子类继承父类,但不会更改父类的非抽象方法
定义:上级模块不能依赖于下级模块,它们都必须依赖于抽象。抽象不能依赖细节,细节要依赖抽象。
传统:没有接口,创建类和类之间的对象。当需求发生变化时,类需要重写,其他类也需要修改
Spring框架:使用注解接口bean,这样实现类可以自由更改,最后的实现类实现这个接口就可以了
细化接口,使接口中定义的方法在实现类中不可用。
示例:设备芯片、设备名称、设备内存等接口的定义方法。这样的接口只能通过电脑、手机等实现类来实现,但对于风扇、支架等一般的设备实现类来说,确实只有设备名是有效的方法。因此,需要将接口细分为两个接口。
优先使用对象组合,而不是通过继承进行复用。
案例:如果A类写了想要的方法,为了不在B类中重复写代码,可以在B类中设置将A类对象设置为参数的方法中通过对象在A类中获取想要的方法。由于安全隐患较大,不建议继承。例:A中有信息时
例如:
每个软件单位对其他单位只有最少的知识,仅限于与该单位密切相关的软件单位。
简而言之,一个类/模块对其他类/模块的交互越少越好。类更改后,相关类应尽量不受影响如果更改了方法名称、字段名称等,可能还需要修改使用其他方法或字段的类。这使得我们在维护项目时更加容易。
白话:在设计方法参数时,保证方法不多给多余的参数。例如:方法只需一个用户的ip地址即可执行,方法参数不写需要输入用户对象,然后在方法中通过对象调用该ip,在调用方法之前取出用户对象的ip调用方法作为参数。
例如:
加号
反面教材
发表评论