原则一:开闭原则(总纲和核心)
开闭原则规定软件中的对象(类、模块、函数等)对扩展开放,对修改封闭。也就是说针对需求的修改,我们要用扩展来实现,而不是通过修改已有代码来实现。
为了方便大家理解,我用王者荣耀来举例,王者荣耀中这么多英雄,如果把所有英雄都集中在一个类中来实现那是不现实的。你想想每次增加新英雄或者修改英雄的属性都要修改这一个类,那程序员还不疯了!时间长了,里面的逻辑之复杂,功能之紊乱真会要人命的。因此英雄联盟每次增加新英雄都会扩展增加一个新英雄类,这个新英雄类当然是继承“抽象英雄类”,然后实现里面的方法来定制自己的属性和功能。这就是对扩展开放,而修改关闭。
优点
(1).方便测试。我们只能以新增加的类进行测试,而不需要管其他的类。
(2).提高复用性。我们把功能拆分成一个一个小功能,是方便我们重复使用的。
(3).提高可维护性。想一下:如果有需求增加或者修改,你是希望重新扩展个类重新写呢?还是阅读别人的代码修改逻辑?
(4).符合面向对象的开发要求。
原则二:单一职责原则
“不要让类太累!”。单一职责原则规定一个类只有一个职责。如果有多个职责(功能)被设计在一个类中,这个类就违反了单一职责原则。其实这不难理解,生活中我们也是这样:专门人做