熟练掌握和应用面向对象设计七大原则,是初中级工程师向高级/资深工程师进阶的一个必备技能。他可以大大的提升程序的可复用性和可维护性是重构代码的一大利器。
本人菜鸟一枚本面文章的出发点是1.加深个人印象。2.作为笔记记录。3.分享。文章中有描述的不到位或者不正确的地方各位大佬多多指出多多包涵。
使用设计模式的根本原因是适应变化,提升代码的复用率,扩展性,维护性和可读性。在设计时需要遵守以下七大原则:
⑴ 单一职责原则
⑵ 开放封闭原则
⑶ 依赖倒置原则
⑷ 里氏替换原则
⑸ 接口隔离原则
⑹ 组合复用原则
⑺ 迪米特原则
迪米特法则
迪米特法则相对来说比较容易理解,比如类A与类B之间没有直接联系的情况下,是不可以互相调用其中的方法,属性等,需要通过第三方类C来进行间接调用,降低类A与类B之间的耦合,提高模块的相对独立性。
class Car
{
public Aircraft aircraft { get; set; }
public void AircraftWeight()
{
aircraft.Weight = 10;
}
}
class Aircraft
{
public double Weight;
}
上方代码可以看出,Car与Aircraft没有直接关系,但是在Car中直接调用了Aircraft的属性,这样一来耦合性很高,改变其中一点,对调用那个类会有很大的影响特别是当我们的模块体量很大的时候。修改后的代码如下:
class Car
{
}
class Aircraft
{
public double Weight;
}
class Traffic
{
Aircraft aircraft = new Aircraft();
Car car = new Car();
void AircraftWeight()
{
aircraft.Weight = 10;
}
}
由第三方来间接调用符合高耦合低内聚思想。