分类: 设计原则

5 篇文章

接口隔离原则
接口隔离原则 定义 Interface Segregation Principle:客户端不应该被强迫依赖它不需要的接口。 个人理解 两个类之间的依赖应当建立在最小的接口上。接口颗粒度把握好,太小了调用麻烦,太大了就会提供一些客户端不需要的内容,服务端改动时影响范围增大,影响扩展性。 如果接口部分内容需要复用,可以拆出来,再使用外观模式,提供客户端…
依赖倒置原则
依赖倒置原则 定义 高层模块不要依赖低层模块,应该通过抽象来互相依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。 个人理解 避免对具体实现类的直接引用,使其付出更小的代价达到扩展的目的,与开闭原则照应。 缺点也是老生常谈的类文件数量增加,可维护性下降。所以要在适当场景使用,切勿过度设计。例如service层定义接口,实际项目中,大部…
里式替换原则
里式替换原则 定义 Liskov Substitution Principle:子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。 个人理解 能够替换不只是从语法(多态)角度考虑,还需要保证替换后,原有业务逻辑正确。 LSP的意义 改进已有实现 例如程序最开始实现时采用了低效的排序算法,改进时使用LSP实…
开闭原则
开闭原则 定义 英文全称是Open Closed Principle,软件实体(模块、类、方法等)应该“对扩展 开放、对修改关闭”。 个人理解 在设计阶段,需要识别出哪些是不变的,哪些将来有可能改变的,留好扩展点。 寻找共性,进行抽象。通用的抽取封装到基类,同类型的、需要扩展的抽取为抽象方法。 如何理解“对扩展开放、对修改关闭”? 添加一个新的功能…
单一职责原则
单一职责原则 定义 单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP。一个类或者模块只负责完成一个职责(或者功能)。 如何理解单一职责原则(SRP)? 一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的 类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可…