最近感悟挺多,看了很多源碼,發現很多東西自己都不懂,程式員這條路真是慢慢其修遠兮啊,我愛寫一些感悟。在公司上班最重要的就是工作態度,(就是職業道德,工匠精神),工作習慣(有一套自己的工作方式方法),工作經驗(程式員絕對是長時間熬出來的),編程思想(把自己當成電腦才能理解電腦),業務邏輯(人的思維 ...
最近感悟挺多,看了很多源碼,發現很多東西自己都不懂,程式員這條路真是慢慢其修遠兮啊,我愛寫一些感悟。在公司上班最重要的就是工作態度,(就是職業道德,工匠精神),工作習慣(有一套自己的工作方式方法),工作經驗(程式員絕對是長時間熬出來的),編程思想(把自己當成電腦才能理解電腦),業務邏輯(人的思維)。
兩個對象空間能訪問,必須能找到要訪問對象的引用。
if else 條件是如果沒合適的都判斷,有就退出。
成員就近原則,對象中的方法可以訪問對象的屬性。
最近熬夜睡眠不好,這篇文章也寫了好幾天,最近公司不是太忙,我看了很多博客,感覺js語言,這種解釋性語言也挺厲害的。我目前的規劃是精通C#語言,JS語言,一種編譯語言,一種解釋語言,然後框架。當然C語言,彙編,這些也是我要瞭解的。
真要給自己一個目標,否則人生沒有方向,生活沒有動力。
單向通信是一個對象A能訪問對象B,但是在B對象中不能訪問A對象,雙向通信就是互相都可以訪問。
狀態模式就是一直可以訪問對象的狀態。雙向通信。直接上例子:
//抽象的約束是對象A(state),在方法中能訪問B(work).(這種理解是不恰當的,應該這樣理解:對象B可以訪問對象A的所有成員。對象A可以訪問對象B所在的方法)
public abstract class State
{
public abstract void WriteProgram(Work w);
}
//具體對象
public class ForenoonState : State
{
public override void WriteProgram(Work w)
{
if (w.Hour < 12)
{
Console.WriteLine("當前時間:{0}點 上午工作,精神百倍", w.Hour);
}
else
{
w.SetState(new NoonState());
w.WriteProgram();
}
}
}
//work對象可以訪問state對象
public class Work
{
private State current;
public Work()
{
current = new ForenoonState();
}
private double hour;
public double Hour
{
get { return hour; }
set { hour = value; }
}
private bool finish = false;
public bool TaskFinished
{
get { return finish; }
set { finish = value; }
}
public void SetState(State s)
{
current = s;
}
public void WriteProgram()
{
//把當前的work對象保存傳遞
current.WriteProgram(this);
}
}
//對象的整個空間生命周期是繼續使用
Work emergencyProjects = new Work();
emergencyProjects.Hour = 9;
emergencyProjects.WriteProgram();
emergencyProjects.Hour = 10;
emergencyProjects.WriteProgram();
總結,狀態模式就是某個對象的空間生命周期繼續使用。所有類型從個數上分,單個,多個,真正研究就是某個對象在記憶體中的生命周期。即對象從生到死,及交互對象的空間世界觀。
這篇博客寫的不好,因為有些東西真是只可意會說出來真的不太容易,不早了,晚安!