---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
1、开闭原则
含义:对扩展开放,对修改关闭
使用方法:多使用抽象类和接口
a:多使用抽象类
在设计类时,对于拥有共同功能的相似类进行抽象化处理,将公用的功能部分放到抽象类中,所有的操作都调用子类,这样,在需要对系统进行功能扩展时,只需要依据抽象类实现新的子类即可。
b: 多使用接口
与抽象类不同,接口只定义子类应该实现的接口函数,而不实现公有的功能,在现在大多数软件开发中,都会为实现类定义接口,如果要改换原有的实现,只需要该换一个实现类即可。
2、里氏代换原则
含义:基类可以被子类替换(再用到基类的地方,换成子类也依然正确)
使用方法:从抽象类继承,不要从具体类继承
eg:我们知道正方形是一种特殊的长方形,所以我们用正方形继承长方形
Rectangle类
public class Rectangle {
private int width;
private int height;
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
}
Square类
public class Square extends Rectangle {
public void setWidth(int width) {
super.setWidth(width);
super.setHeight(width);
}
public void setHeight(int height) {
super.setWidth(height);
super.setHeight(height);
}
}
TestRectangle类
public class TestRectangle {
public static void main(String[] args) {
Rectangle rect = new Rectangle();
zoom(rect, 10, 20);
}
public static void zoom(Rectangle rectangle, int width, int height) {
rectangle.setWidth(rectangle.getWidth() + width);
rectangle.setHeight(rectangle.getHeight() + height);
}
}
在测试函数里,我们要为长和宽增加高度,但是如果长宽增加的高度不一样,那么对正方形来说,就失败了
修改:定义长方形和正方形的共同父类
3、 依赖倒转原则
含义:要依赖于抽象类, 不要依赖于具体类(就是当一个对象中有另一个对象的引用时,最好不要引用该对象本身,而是引用该对象的接口或抽象类)
实现方法:针对接口编程,不要针对实现编程
4、接口隔离原则:
含义:使用多个隔离的接口,不要使用单个大接口
实现方法:建立最小的接口
5、迪米特法则(最少知道原则)
含义:一个实体应当尽可能少的与其他实体发生相互作用
实现方法:通过中间类建立联系
6、合成复用原则
含义:尽量使用合成/聚合,而不是使用继承
实现方法:尽量使用合成/聚合,而不是使用继承
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------