随笔分类 - 设计模式
摘要:迪米特法则:一个软件实体应当尽可能少的与其他实体发生相互作用 如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽力少的影响其他模块,扩展会相对容易。这是对软件实体之间通信的限制。迪米特法则要求限制软件实体之间通信的宽度和深度。迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关
阅读全文
摘要:合成复用原则由成为组合/聚合复用原则,尽量使用对象组合,而不是继承来达到复用的目的 合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。简言之:复用时要尽量使用组合/聚合关系(关联关系
阅读全文
摘要:接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 接口隔离不应该继承臃肿的接口,只依赖需要的接口,接口必须实现单一职责原则, 举个简单的例子: 从上面的例子我们可以看到,B需要用到A接口的Method1,Method3,Method4方法,C需要用到A接口
阅读全文
摘要:依赖倒转原则:抽象不应该依赖于细节,细节应当依赖于抽象,换言之,要针对接口编程,而不是针对实现编程。 依赖倒转原形要求程序代码中传递参数时或在关联关系中,进来引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。为
阅读全文
摘要:里氏替换原则:所有引用基类的地方,必须能透明的使用其子类的对象。 通俗的理解:子类可以扩展父类的功能,但不能改变父类原有的功能。 代码示例: 里氏替换原则表明,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一
阅读全文
摘要:开闭原则:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。 为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。 可以在系统定义一个相对稳定的抽象层,将不同的实现行为转移到具体的实现层来完成。 通过接口、抽象类等机制来定义系统的抽象层,再通过
阅读全文
摘要:单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 也就是类A 如果负责两项任务T1和T2,如果当T1职责需求变更需要修改类A,可能会对T2导致影响或故障 这个时候我们就需要将任务T1和T2分离开来,遵循单一原则,既修改T1,T2不受影响 举个例子: 运行结果: 牛在
阅读全文

浙公网安备 33010602011771号