小白一枚,记录代码的合成复用
/*
* C#中的合成复用
*/
public class HeChengFuYong : MonoBehaviour
{
}
public class DesignPerson{
public void Work() {
//父类:解决子类共同的问题
}
}
//子类:解决特有的问题
//继承是一种 is a的关系
public class Leader :DesignPerson{
//主程:搭框架,攻克难题,分配任务
public void DaFrame() { }
public void SolveTrouble() { }
public void ManageTask() { }
}
public class Programmer : DesignPerson
{
//程序员:写逻辑,搭UI
public void WriteLogic() { }
public void DaUI() { }
}
public class Practicer : DesignPerson
{ //实习生:写bug,改bug
public void WriteBug() { }
public void SolveBug() { }
}
//如果此时主程离职,程序员需要做主程的事,就需要实现内部类,内部类是一种has a的关系
public class Role {
Leader leader;
Programmer programmer;
public void DoFrame() {
//通过内部类,实现DoFrame方法的重用
leader.DaFrame();
}
}