第 2 周 课后总结
在本周的课程中,我了解到以下内容:
一个好的软件设计是什么样的?一个不好的软件设计是什么样的?
学习几个设计原则:OCP、DIP、LSP、SRP、ISP?
软件设计的好坏
一个好的软件设计是“强内聚、松耦合”,从而使软件:
易扩展 - 易于增加新功能;
更强壮 - 不容易被粗心的程序员破坏;
可移植 - 能够在不同环境下运行;
更简单 - 容易理解、容易维护;
一个不好的软件设计,会有以下表现:
僵硬 - 不易改变;
脆弱 - 只想改A,结果B被意外破坏;
不可移植 - 不能适应环境的变化;
导致误用的陷阱 - 做错误的事比做正确的事情更容易,破坏原有的设计;
晦涩 - 代码难以理解;
过度设计、复制粘贴代码;
设计原则
开放封闭原则OCP(Open Closed Principle):软件实体对扩展开放,对修改封闭;
依赖倒置原则DIP(Dependency Inversion Principle):依赖抽象不要依赖具体实现。和好莱坞原则相似;
里氏替换原则LSP(Liskov Substitution Principle):子类的实例能够替换其父类的实例;
单一责任原则SRP(Single Responsibility Principle):一个类/对象只有一个引起变化的原因。换言之,一个类只有一个类型责任;
接口分离原则ISP(Interface Segregation Principle):使用多个专门的接口比使用单一的总接口要好。一个类对另一个的依赖性建立在最小的接口上;
版权声明: 本文为 InfoQ 作者【Coder】的原创文章。
原文链接:【http://xie.infoq.cn/article/db917506028d33459813d25a2】。未经作者许可,禁止转载。
评论