一、软件设计的目标?
一个好的软件设计的两大目标是:复用率高,可维护性好。
二、如何设计出一个复用率高、可维护性好的软件系统?
这里有一些设计的原则
1.“开-闭”原则
2.里氏代换原则
3.依赖倒转原则
4.接口隔离原则
5.组合/聚合复用原则
6.迪米特原则
三、“开-闭”原则(OCP)
1.什么是“开-闭”原则?
一个软件实体应当对扩展开放,对修改关闭。
2.“开-闭”原则的优点?
(1)通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活性。
(2)已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性。
3.怎样做到“开-闭”原则?
(1)抽象化是关键
(2)对可变性的封装
四、里氏代换原则(LSP)
1.什么是里氏代换原则?
如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序p的行为没有变化,那么类型T2是类型T1的子类型。换言之,一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。反过来的代换不一定成立,即如果一个软件实体使用的是一个子类的话,那么它不一定适用于基