常用的设计原则
软件/项目开发的流程
需求分析文档 => 概要设计文档 => 详细设计文档 => 编码和测试 => 安装和调试
=> 维护和升级
常用的设计原则
开闭原则
- 对扩展开放,对修改关闭
- 实现热插拔的效果,从而提高软件的可维护性
如:
1
2
3
4
5
6
7
8 private String name;
private int age;
...
}
public class SubPerson extends Person{
private boolean gender;
}
里氏代换原则
- 任何父类可以出现的地方,子类一定可以出现
- 尽量多使用继承和多态的方式编程
如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 s.show();
}
draw(new Rect(1, 2, 3, 4));
依赖倒转原则 - 尽量依赖于抽象类和接口,而不是具体实现类
- 抽象类对子类具有强制性和规范性
如:
public abstract class Account{
public abstract double getLixi();
}
public class FixedAccount extends Account{
@Override
public double getLixi(){
}
}
```
**接口隔离原则**
- 尽量依赖于多个小接口而不是一个大接口
如:
```public interface FlyAnimal{
public abstract void fly();
}
public interface RunAnimal{
public abstract void run();
}
public class Dog implements RunAnimal{
}
迪米特法则
一个实体应当尽量少与其它实体之间发生相互作用。
高内聚低耦合
所谓高内聚就是指一个实体应该将该实体拥有的所有功能内聚于该实体的内部。
所谓低耦合就是指一个实体应该尽量减少与其它实体的关联度。
合成复用原则
应该尽量使用合成复用的方式而不是继承。
如:
1
2
3
4
5
6
7
8
9
10
11
12
13 public void show(){ ... }
...
}
public class B{
private A a;
public B(A a){
this.a = a;
}
public void test(){
a.show();
}
}
常用的设计模式
基本概念
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结
基本分类
创建型模式 - 工厂方法模式、抽象工厂模式、单例设计模式(要求会写)
结构型模式 - 装饰器模式、代理模式(要求看懂)
行为型模式 - 模板方法模式、观察者模式(以后讲到)
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!