架构师训练营 - 第二周总结
软件的设计
学习到了设计一个高内聚低耦合的软件可以通过OOD的设计原则,包括
开闭原则
开闭原则是核心原则,对扩展开放对修改关闭,不修改原有代码,对模块、类、属性等进行扩展实现的需求变更,这种设计可以说遵循了开闭原则,所以即使对某个类增加了属性不影响到原有功能,也是遵循开闭原则的,这个原则本身还是比较开放的,不能片面的理解。
依赖倒置原则
依赖倒置原则是说高层不应该直接依赖低层,两者通过抽象互相依赖。
例如调用者模块与被调用者模块之间由不同的人共同研发,调用者直接依赖了被调用者的接口,当被调用者发生变更时,调用者也要进行修改,引发了散弹式变更,模块之间耦合度很高,由调用者定义抽象接口,被调用者实现抽象接口,这样被调用者发生变更影响只会发生在被调用者一方,可以实现模块之间解耦,这样的设计遵循了依赖倒置原则。
里氏替换原则
里氏替换原则是说基类可以出现的地方,子类一定可以出现。例如人渴了可以喝水,人通过喝这个函数依赖液体,液体是基类,水或者饮料是液体的子类遵循了里氏替换原则,如果毒药也是液体的子类就破坏了里氏替换原则。
接口隔离原则
客户端不应该依赖它不需要的接口,这个原则是说不要设计大而全的接口,把接口的粒度拆的更细,例如用户接口有登录,详情,编辑,删除等函数,删除是管理员才有权限操作的接口不该开放给客户端调用。
单一职责原则
单一职责是说一个类只有一个引起它变化的原因,当有多个原因引起它变化,那么他的职责是不单一的,但是类职责是否单一往往很难界定,要根据实际业务场景去判断,如果一个类超过两百行代码,或者出现了多个私有方法,应该要考虑对类进行拆分。
工具和框架的区别
框架( Framework )是构成一类特定软件可复用设计的一组相互协作的类。框架规定了你的应用的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。框架预定义了这些设计参数,以便于应用设计者或实现者能集中精力于应用本身的特定细节。
工具是抽象的概念,通俗的说是一些符合某种规范的类组合在一起就构成了工具。工具是实现了某一功能,应用实现者主动调用工具实现完成工作。
版权声明: 本文为 InfoQ 作者【teslə】的原创文章。
原文链接:【http://xie.infoq.cn/article/12278a5434f9f7bfffa5bf2fd】。未经作者许可,禁止转载。
评论