設計模式漫談之模板方法

Wang_Charle發表於2018-05-05

最近也是挺煩的,部落格園做為程式設計師的家園,其實不假。雖然現在寫出的隨筆,看的人少。就當自娛自樂了。煩惱就是矛盾引起的,人很多想法都會被外界環境影響。比如一個思考很久的決定,當事情真發生時,考慮過多,受到外界環境的影響就改變了。

面試真的靠技巧,雖然你很NB,但是面試官不知道,不給你機會,也是白搭。真正知道你NB的人不多,因為人容易被假象所迷惑。

想和我發生關係要對我負責,在物件導向中發生關係的有,繼承,實現,關聯,組合等

首次都是套路,因為套路是敲門磚。

物件的成員,對介面屬於實現,對抽象類屬於重寫,對虛方法屬於可以重寫,用new 屬於故意重寫。

繼承重在已經擁有。

人的眼界很重要,比如60歲一直在農村的沒見過世面的,就很難理解我們這代人,我敬愛的老父親最大的苦惱就是我沒結婚,他的思想除了想這件事,其他事也不會想。這也怪我,活的自私,畢竟我們不是孤立的個體,不能看破紅塵。

頭好疼,無法入睡。操的閒心太多。

繼承已經擁有說明物件中是不少的。

類就是模板。

閒話不扯了,今天說模板方法。

模板就是條條框框已經寫好,只用把佔位符換成物件的特有屬性。

直接上例子,我來解釋。

//抽象類,已經擁有的

abstract class AbstractClass
{

//需要個性重寫的
public abstract void PrimitiveOperation1();
public abstract void PrimitiveOperation2();

public void TemplateMethod()
{
PrimitiveOperation1();
PrimitiveOperation2();
Console.WriteLine(“”);
}
}

//在模板上個性化實現

class ConcreteClassA : AbstractClass
{
public override void PrimitiveOperation1()
{
Console.WriteLine(“具體類A方法1實現”);
}
public override void PrimitiveOperation2()
{
Console.WriteLine(“具體類A方法2實現”);
}
}

//相當於替換模板的佔位符

class ConcreteClassB : AbstractClass
{
public override void PrimitiveOperation1()
{
Console.WriteLine(“具體類B方法1實現”);
}
public override void PrimitiveOperation2()
{
Console.WriteLine(“具體類B方法2實現”);
}
}

//只是引用,

AbstractClass c;

//應用型別表示的物件

c = new ConcreteClassA();

//不強轉時,表示引用型別的方法。

c.TemplateMethod();

c = new ConcreteClassB();
c.TemplateMethod();

總結,模板方法,就是把個性的方法重寫,其他的用模板的成員。

程式設計全靠思想,繼承表示的就是這個物件已經擁有,個性化的成員,可以重寫。

重要的說三遍,程式設計師全靠程式設計思想。

不扯了,頭疼,哎

 

相關文章