java开发设计六大基本原则

遵循单一职责原则

  1. 一个类只专注于做一件事; 
  2. 高内聚,低耦合;

开放-封闭原则

  1. 对拓展开放,对修改关闭(尽可能不动原有代码进行拓展); 
  2. 高内聚,低耦合; 
  3. 为达到目的,需对系统进行抽象化设计(关键); 

UML举例: 

这里写图片描述

里氏代换原则(LSP)

  1. 子类必须能够替换它们的基类型,基类与子类可互换,客户端没有察觉情况下; 
  2. 低耦合; 
  3. 很容易实现同一父类下的各个子类的互换,而客户端可以毫不察觉;

UML实例: 

这里写图片描述

士兵只能使用WeaponGun,而无法使用ToyGun杀敌,如果使用ToyGun将会出错。这就是里氏替换原则。

依赖倒置原则

  1. 这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。
  2. 写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

接口隔离原则(Interface Segregation Principle)

  1. 使用多个专一功能的接口比使用一个总接口总要好,但不能过渡; 
  2. 一个接口不能过于臃肿; 
  3. 高内聚 
  4. 会使一个软件系统功能拓展时,修改的压力不会影响到别的对象那去; 

UML实例: 

这里写图片描述

Model只要满足好身材这个条件,就有可能成为模特,漂亮女孩满足好身材和好。AngelaBaby即有好身材又好。

迪米特法则(Law of Demeter)

  1. 又叫最少知识原则; 
  2. 对象与对象之间应该使用尽可能少的方法来关联,避免千丝万缕的关系; 
  3. 低耦合; 
  4. 类知道其他类应尽量少; 
  5. 类可以访问其他类的方法或者属性也应尽量少;

这里写图片描述

如果Lily和Jack自己做hamburg那么就会与Vegetable、Meat、Bread产生千丝万缕关系。上图,则由KFC来做,这样Lily和Jack就只与Hamburg有关关联,与材料就没有关联了。

猜你喜欢

转载自my.oschina.net/u/3198904/blog/1633355