今天学习讨论了设计模式中软件设计的原则部分,通过老师的举例和层层深入的代码重构,让我明白了在设计软件的过程中,遵守相关的软件设计原则是多么的重要,不仅仅是方便日后查看代码,更是为了在维护更新代码的过程中减少我们的工作量,方便解决用户的需求问题。
首先,我们从一个简单的VB程序print 5+6入手,这样的代码非常的常见,我们也会在编写代码的过程中经常使用到,但是就是这么简单的一句代码,也有很大的改进空间,我们在编写代码的同时一定不能忘了经常提醒自己是否遵守了设计模式中的七大原则:
开闭原则:对扩展开放、对修改关闭
里氏替换原则:继承必须确保父类所拥有的性质在子类中仍然成立(例如:长方形不是正方形)
依赖倒置原则:要面向接口编程,不要面向实现编程
单一职责原则:控制类的粒度大小、将对象解耦、提高其内聚性(一个方法干好一件事(原子性))
接口隔离原则:要为各个类建立他们需要的专用接口
迪米特法则:只与你的直接朋友交谈,不跟“陌生人”说话。(不越级汇报。解耦)
合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。
在设计模式的学习中,有一句话老师总是提到,就是“变是永远不变的”。这句话虽然听起来不符合逻辑,但是把这句话用到软件设计方面却是再适合不过了。因为我们在代码重构的过程中所做的操作就是将更多可变的因素控制成为不变的代码,比如用户要输入不同的数字,我们只需要定义一个变量来接受用户输入的数字即可,这样看似变化的数据,但是体现在代码中时就是不变的。把不变的算法结构抽象出来,变化的是千千万万种不同数字的组合。这样的软件设计理念不仅仅是在设计这种简单程序的时候要使用,越是重要,越是庞大的软件更需要遵守这样的软件设计原则,这样我们软件才能更好的更新迭代下去。
当我们真正熟悉并能能灵活使用这些软件设计的原则的时候,我们所编写的代码也就能更好的解耦合,更好的复用和灵活。在面对用户的不同需求的时候也不会焦头烂额。