創建對象有很多種方式,可以用工廠,可以用容器裝配。所以不在乎再多一種啦。。。在C#上寫了一種古怪的創建對象的方式,給大家kk。
首先,這是配置代碼。意思是說在Lily的宇宙中(每個人都有一個小宇宙,圣斗士。。。),她的Boy是tom,也就是我的眼中只有你。相應的在Lucy的眼中只有joy。
然后是創建兩個女孩子的代碼:
運行這段代碼就可以看到少兒不宜的場景了。。。:
Lily is kissing Tom
Lucy is kissing Joy
產生這樣的結果的原因是:
Girl的男朋友從哪里來的?偷來的?搶來的?騙來的?。。。
GiveMe是哪里來的方法?它是上帝的安排?。?br>
旁白:其實本來沒有神,每個人都是神。。。
上帝怎么實現GiveMe的呢?這就是Void關心的事情了。因為女孩子們是這么創建的:
所以說,這根本就是一個圈。。。因為我要做的其實是完全廢棄標準的new和構造函數,采用自己的方式來創建和初始化對象,所以我不把這個叫做某某框架,獨立使用也沒有價值,它其實是一種語言。這種語言在后面我會用來干一些fancy的事情,但是還沒想好怎么弄。。。
首先,這是配置代碼。意思是說在Lily的宇宙中(每個人都有一個小宇宙,圣斗士。。。),她的Boy是tom,也就是我的眼中只有你。相應的在Lucy的眼中只有joy。
Tom tom = Void.GiveMe<Tom>();
Joy joy = Void.GiveMe<Joy>();
Void.UniverseOf<Lily>().Exist(tom);
Void.UniverseOf<Lucy>().Exist(joy);
Joy joy = Void.GiveMe<Joy>();
Void.UniverseOf<Lily>().Exist(tom);
Void.UniverseOf<Lucy>().Exist(joy);
然后是創建兩個女孩子的代碼:
Lily lily = Void.GiveMe<Lily>();
lily.Kiss();
Lucy lucy = Void.GiveMe<Lucy>();
lucy.Kiss();
lily.Kiss();
Lucy lucy = Void.GiveMe<Lucy>();
lucy.Kiss();
運行這段代碼就可以看到少兒不宜的場景了。。。:
Lily is kissing Tom
Lucy is kissing Joy
產生這樣的結果的原因是:
public abstract class Girl : God
{
public abstract string Name { get; }
public void Kiss()
{
Boy boy = GiveMe<Boy>();
Console.WriteLine("{0} is kissing {1}", Name, boy.Name);
}
}
{
public abstract string Name { get; }
public void Kiss()
{
Boy boy = GiveMe<Boy>();
Console.WriteLine("{0} is kissing {1}", Name, boy.Name);
}
}
Girl的男朋友從哪里來的?偷來的?搶來的?騙來的?。。。
GiveMe是哪里來的方法?它是上帝的安排?。?br>
public abstract class God
{
protected abstract T GiveMe<T>();
}
{
protected abstract T GiveMe<T>();
}
旁白:其實本來沒有神,每個人都是神。。。
上帝怎么實現GiveMe的呢?這就是Void關心的事情了。因為女孩子們是這么創建的:
Lily lily = Void.GiveMe<Lily>();
Lucy lucy = Void.GiveMe<Lucy>();
Lucy lucy = Void.GiveMe<Lucy>();
所以說,這根本就是一個圈。。。因為我要做的其實是完全廢棄標準的new和構造函數,采用自己的方式來創建和初始化對象,所以我不把這個叫做某某框架,獨立使用也沒有價值,它其實是一種語言。這種語言在后面我會用來干一些fancy的事情,但是還沒想好怎么弄。。。
浙公網安備 33010602011771號