表弟馬上就要大學(xué)畢業(yè),找工作要寫(xiě)簡(jiǎn)歷(Resume),因此他就來(lái)問(wèn)我關(guān)于這方面的問(wèn)題。我告訴他最好寫(xiě)兩種類(lèi)型的簡(jiǎn)歷,一種是用中文寫(xiě)的,一種是用英文寫(xiě)的,如果是國企的話(huà),就投中文簡(jiǎn)歷(ChineseResume),如果是外企的話(huà),就投英文簡(jiǎn)歷(EnglishResume),嘿嘿,原因在這里就沒(méi)必要多說(shuō)了吧。
下面讓我們看看這個(gè)過(guò)程該如何實(shí)現呢?
1、我們先定義簡(jiǎn)歷(Resume)接口類(lèi):
public interface Resume {
public void writeText();
}
2、再定義對簡(jiǎn)歷(Resume)接口的具體實(shí)現:
A:中文簡(jiǎn)歷(ChineseResume)
public class ChineseResume implements Resume{
public void writeText(){
System.out.println("用中文寫(xiě)簡(jiǎn)歷!");
}
}
B:英文簡(jiǎn)歷(EnglishResume)
public class EnglishResume implements Resume{
public void writeText(){
System.out.println("用英文寫(xiě)的簡(jiǎn)歷!");
}
}
3、定義投遞策略(Strategy)類(lèi):
public class Strategy {
private Resume resume;
public Strategy(Resume resume) { //使用簡(jiǎn)歷的策略
this.resume=resume;
}
public void postResume() { //投遞簡(jiǎn)歷
System.out.println("投遞");
resume.writeText();
}
}
4、編寫(xiě)測試類(lèi):
public class Test {
public static void main(String args[]) {
//如果是國企
Resume brotherResume = new ChineseResume(); //表弟用中文寫(xiě)的簡(jiǎn)歷
Strategy strategy = new Strategy(brotherResume); //使用用中文寫(xiě)的簡(jiǎn)歷
strategy.postResume(); //給國企投遞該簡(jiǎn)歷
//如果是私企
brotherResume = new EnglishResume(); //表弟用英文寫(xiě)的簡(jiǎn)歷
strategy = new Strategy(brotherResume); //使用用英文寫(xiě)的簡(jiǎn)歷
strategy.postResume(); //給私企投遞該簡(jiǎn)歷
}
}
5、說(shuō)明:
A:Strategy模式主要是定義一系列的算法,把這些算法一個(gè)個(gè)封裝成單獨的類(lèi)。
B:在本例中,中文簡(jiǎn)歷(ChineseResume)和英文簡(jiǎn)歷(EnglishResume)就相當于兩種算法,同時(shí)我們把它定義成兩個(gè)單獨的類(lèi)。
C:在找工作時(shí),我們可以根據企業(yè)類(lèi)型選擇投遞那種簡(jiǎn)歷,Strategy模式和Factory模式的不同之處是:Strategy模式主要是用來(lái)選擇不同的算法,而Factory模式的重點(diǎn)是用來(lái)創(chuàng )建對象。
聯(lián)系客服