"定义:High Level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details.Details should depend upon abstractions.<br>定义的含义:<br>a. 高层模块不应依赖低层模块,两者应都依赖其抽象<br>b. 抽象不应依赖细节<br>c. 细节应依赖抽象<br>(细节即实现类,抽象即接口或抽象类)<br>在Java中的表现:<br>a. 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的<br>b. 接口或抽象类不依赖于实现类<br>c. 实现类依赖接口或抽象类<br>用更加精简的定义就是:面向接口编程——OOD(Object-Oriented-Design, 面向对象设计)的精髓之一。<br>下面,我们通过反证法来证明:<br>论题:依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高嗲吗的可读性和可维护性。<br>反论题:不使用依赖倒置原则也可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。<br>eg:<br>司机驾驶奔驰车:<br>司机类:<br>publicclassDriver{publicvoiddriver(Benzbenz){benz.run();}}<br>奔驰类:<br>publicclassBenz{publicvoidrun(){System.out.printIn(""奔驰运行"");}}<br>场景类:<br>publicclassClient{publicstaticvoidmain(String[]args){DriverzhangSan=newDriver();Benzbenz=newBenz();zhangSan.driver(benz);}}<br>Now 张三要开宝马怎么办???<br>首先 我们需要产生一个宝马类(代码略:类似奔驰类)<br>但是!张三却无法开,因为没有对应的方法<br>我们的设计出现了问题:司机类与奔驰类是紧耦合关系,导致可维护性降低,可读性降低(阅"
上次呢,我们讲解了容斥问题题型的由来和它的其中一个题型,今天呢,我们来学习第二个题型:容斥原理之三集合标准型公式。 三集合标准型:是指把一个整体分成三部分,且告知两两相交的地方,并有三者都满足的,这样的题就是三集合标准型。如:某专业有学生50人,现开设有甲、乙、丙三门必修课。有40人选修甲课程,36人选修乙课程,30人选修丙课程,兼选甲、乙两门课程的有28人,兼选甲、丙两门课程的有26人,兼选乙、丙两门课程的有24人,甲、乙、丙三门课程均选的有20人,问三门课程均未选的有多少人? 画图来看: 公式:A+B+C-(AB+BC+AC)+ABC=总数-都不 公式应用: 【例】某专业有学生50人,现开设有甲、乙、丙三门必修课。有40人选修甲课程,36人选修乙课程,30人选修丙课程,兼选甲、乙两门课程的有28人,兼选甲、丙两门课程的有26人,兼选乙、丙两门课程的有24人,甲、乙、丙三门课程均选的有20人,问三门课程均未选的有多少人?( ) C.3人D.4人 【解析】40+36+30-28-26-24+20=50-X,解得X=2。 以上呢,是容斥原理的第二个公式,希望能对大家的备考有所帮助。 华图教育于海艳 2018年5月26日