- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从实例谈面向对象编程(OOP)、工厂模式和重构
从实例谈面向对象编程(OOP)、工厂模式和重构
涓轰簡鏇村ソ鐨勭悊瑙h璁℃€濇兂锛屽疄渚嬪敖鍙兘绠€鍗曞寲銆備絾闅忕潃闇€姹傜殑澧炲姞锛岀▼搴忓皢瓒婃潵瓒婂鏉傘€傛鏃跺氨鏈変慨鏀硅璁$殑蹇呰锛岄噸鏋勫拰璁捐妯″紡灏卞彲浠ユ淳涓婄敤鍦轰簡銆傛渶鍚庡綋璁捐娓愯秼瀹岀編鍚庯紝浣犱細鍙戠幇锛屽嵆浣块渶姹備笉鏂鍔狅紝浣犱篃鍙互绁炴竻姘旈棽锛屼笉鐢ㄤ负浠g爜璁捐鑰岀儲鎭间簡銆?
鍋囧畾鎴戜滑瑕佽璁′竴涓獟浣撴挱鏀惧櫒銆傝濯掍綋鎾斁鍣ㄧ洰鍓嶅彧鏀寔闊抽鏂囦欢mp3鍜寃av銆傚鏋滀笉璋堣璁★紝璁捐鍑烘潵鐨勬挱鏀惧櫒鍙兘寰堢畝鍗曪細
public class MediaPlayer
{
private void PlayMp3()
{
MessageBox.Show(Play the mp3 file.);
}
private void PlayWav()
{
MessageBox.Show(Play the wav file.);
}
public void Play(string audioType)
{
switch (audioType.ToLower())
{
case (mp3):
PlayMp3();
break;
case (wav):
PlayWav();
break;
}
}
}
鑷劧锛屼綘浼氬彂鐜拌繖涓璁¢潪甯哥殑绯熺硶銆傚洜涓哄畠鏍规湰娌℃湁涓烘湭鏉ョ殑闇€姹傚彉鏇存彁渚涙渶璧风爜鐨勬墿灞曘€傚鏋滀綘鐨勮璁$粨鏋滄槸杩欐牱锛岄偅涔堝綋浣犱负搴旀帴涓嶆殗鐨勯渶姹傚彉鏇磋€岀劍澶寸儌棰濈殑鏃跺€欙紝浣犲彲鑳芥洿甯屾湜璁╄繖浠借璁″埌瀹冨簲璇ュ幓鐨勫湴鏂癸紝灏辨槸妗岄潰鐨勫洖鏀剁珯銆備粩缁嗗垎鏋愯繖娈典唬鐮侊紝瀹冨叾瀹炴槸涓€绉嶆渶鍙よ€佺殑闈㈠悜缁撴瀯鐨勮璁°€傚鏋滀綘瑕佹挱鏀剧殑涓嶄粎浠呮槸 mp3鍜寃av,浣犱細涓嶆柇鍦板鍔犵浉搴斿湴鎾斁鏂规硶锛岀劧鍚庤switch瀛愬彞瓒婃潵瓒婇暱锛岀洿鑷宠揪鍒颁綘瑙嗙嚎鐪嬩笉鍒扮殑鍦版銆?
濂藉惂锛屾垜浠厛鏉ヤ綋楠屽璞$殑绮剧銆傛牴鎹甇OP鐨勬€濇兂锛屾垜浠簲璇ユ妸mp3鍜寃av鐪嬩綔鏄竴涓嫭绔嬬殑瀵硅薄銆傞偅涔堟槸杩欐牱鍚楋紵
public class MP3
{
public void Play()
{
MessageBox.Show(Play the mp3 file.);
}
}
public class WAV
{
public void Play()
{
MessageBox.Show(Play the wav file.);
}
}
濂芥牱鐨勶紝浣犲凡缁忕煡閬撴€庝箞寤虹珛瀵硅薄浜嗐€傛洿鍙枩鐨勬槸锛屼綘鍦ㄤ笉鐭ヤ笉瑙変腑搴旂敤浜嗛噸鏋勭殑鏂规硶锛屾妸鍘熸潵閭d釜鍨冨溇璁捐涓殑鏂规硶鍚嶅瓧鏀逛负浜嗙粺涓€鐨凱lay()鏂规硶銆備綘鍦ㄥ悗闈㈢殑璁捐涓紝浼氬彂鐜拌繖鏍锋敼鍚嶆槸澶氫箞鐨勫叧閿紒浣嗕技涔庝綘骞舵病鏈夊嚮涓瀹筹紝浠ョ幇鍦ㄧ殑鏂瑰紡鍘绘洿鏀筂ediaPlayer鐨勪唬鐮侊紝瀹炶川骞舵病鏈夊澶х殑鍙樺寲銆?
鏃㈢劧mp3鍜寃av閮藉睘浜庨煶棰戞枃浠讹紝浠栦滑閮藉叿鏈夐煶棰戞枃浠剁殑鍏辨€э紝涓轰粈涔堜笉涓哄畠浠缓绔嬩竴涓叡鍚岀殑鐖剁被鍛紵
public class AudioMedia
{
public void Play()
{
MessageBox.Show(Play the AudioMedia file.);
}
}
鐜板湪鎴戜滑寮曞叆浜嗙户鎵跨殑鎬濇兂锛孫OP涔熺畻鏄薄妯¤薄鏍蜂簡銆傚緱鎰忎箣浣欙紝杩樻槸璁ょ湡鍒嗘瀽鐜板疄涓栫晫鍚с€傚叾瀹炲湪鐜板疄鐢熸椿涓紝鎴戜滑鎾斁鐨勫彧浼氭槸鏌愮鍏蜂綋绫诲瀷鐨勯煶棰戞枃浠讹紝鍥犳杩欎釜AudioMedia绫诲苟娌℃湁瀹為檯浣跨敤鐨勬儏鍐点€傚搴斿湪璁捐涓紝灏辨槸锛氳繖涓被姘歌繙涓嶄細琚疄渚嬪寲銆傛墍浠ワ紝杩樺緱鍔ㄤ竴涓嬫墜鏈紝灏嗗叾鏀逛负鎶借薄绫汇€傚ソ浜嗭紝鐜板湪鐨勪唬鐮佹湁鐐筄OP鐨勬劅瑙変簡锛?
public abstract class AudioMedia
{
public abstract void Play();
}
public class MP3:AudioMedia
{
文档评论(0)