最近感悟挺多,看了不少源碼,發現不少東西本身都不懂,程序員這條路真是慢慢其修遠兮啊,我愛寫一些感悟。在公司上班最重要的就是工做態度,(就是職業道德,工匠精神),工做習慣(有一套本身的工做方式方法),工做經驗(程序員絕對是長時間熬出來的),編程思想(把本身當成計算機才能理解計算機),業務邏輯(人的思惟)。程序員
兩個對象空間能訪問,必須能找到要訪問對象的引用。編程
if else 條件是若是沒合適的都判斷,有就退出。框架
成員就近原則,對象中的方法能夠訪問對象的屬性。ide
最近熬夜睡眠很差,這篇文章也寫了好幾天,最近公司不是太忙,我看了不少博客,感受js語言,這種解釋性語言也挺厲害的。我目前的規劃是精通C#語言,JS語言,一種編譯語言,一種解釋語言,而後框架。固然C語言,彙編,這些也是我要了解的。this
真要給本身一個目標,不然人生沒有方向,生活沒有動力。對象
單向通訊是一個對象A能訪問對象B,可是在B對象中不能訪問A對象,雙向通訊就是互相均可以訪問。生命週期
狀態模式就是一直能夠訪問對象的狀態。雙向通訊。直接上例子:內存
//抽象的約束是對象A(state),在方法中能訪問B(work).(這種理解是不恰當的,應該這樣理解:對象B能夠訪問對象A的全部成員。對象A能夠訪問對象B所在的方法)get
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();
總結,狀態模式就是某個對象的空間生命週期繼續使用。全部類型從個數上分,單個,多個,真正研究就是某個對象在內存中的生命週期。即對象從生到死,及交互對象的空間世界觀。
這篇博客寫的很差,由於有些東西真是隻可意會說出來真的不太容易,不早了,晚安!