引言
本文参考以下这篇文章
定义
合成复用原则是通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。
合成,指的是car合成color
复用,指的是carcolor继承color,fordcar继承car
个人总结
package com.yongzhi1u.接口隔离原则5.module;
public interface ICar {
void drive ();
}
package com.yongzhi1u.接口隔离原则5.module;
public abstract class Color {
private String color = "defaultColor";
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
package com.yongzhi1u.接口隔离原则5.module;
public class CarColor extends Color {
CarColor(String color) {
setColor(color);
}
}
package com.yongzhi1u.接口隔离原则5.module;
public class FordCar implements ICar {
private Color color;
public void drive() {
System.out.println("drive");
}
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
}
package com.yongzhi1u.接口隔离原则5.module;
public class MainApplication {
public static void main(String[] args) {
FordCar car = new FordCar();
CarColor carColor = new CarColor("red");
car.setColor(carColor);
car.drive();
car.getColor();
}
}
扩展
上述代码,在扩展car时,例如新增BenzCar,直接实现ICar接口
在扩展color时,例如新增轮胎颜色 TyreColor extends Color也可以直接赋值到car.setColor(new TyreColor())
扩展性很强