`
SavageGarden
  • 浏览: 215615 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

公交车报站类

    博客分类:
  • Java
阅读更多
****到了,去往****的乘客,请您前后门下车,下车请走好,......get ready for your arrive。每天都在公交车上听到这些,每天也都在想,是每一个站它都如此录的音呢,还是把公用的录出来,然后再分别录上站名,然后拼凑出来了这样的报站语音呢?那么是不是就是说应该就像一个类里有些静态变量,然后有个共有的静态方法,根据外面传递的参数再拼上静态变量,输出了报站语音呢?
public class XXX路公交车{
	private static 语音 publicString1="到了,去往";
	private static 语音 publicString2="的乘客,请您前后门下车,下车请走好";
	private static 语音 publicString3="get ready for your arrive";
	public static 语音 报站(语音 站名,语音 周边){
		return 站名+publicString1+周边
+publicString2+publicString3;
	}
}

貌似还行,可以报站了,可是,好像有的公交车并不是这样的报站方式,不同公交公司的报站语音是不一样的,这样的一个类不够通用,拿到其它地方就还要进行修改,那么,怎么改呢?
public interface 公交车{
	public 语音 报站(语音 站名,语音 周边);
}
public class XXX路公交车 implements 公交车{
	private static 语音 publicString1="到了,去往";
	private static 语音 publicString2="的乘客,请您前后门下车,下车请走好";
	private static 语音 publicString3="get ready for your arrive";
	public 语音 报站(语音 站名,语音 周边){
		return 站名+publicString1+周边
+publicString2+publicString3;
	}
}

写一个通用的接口公交车,然后下面的各路公交车都实现这个接口,根据不同的公交公司加载不同的static 语音变量,这样应该就可以了吧,可是,是只是需要两个参数吗?万一因为奥运来了想加点奥运特色的东西呢?
public class XXX路公交车 implements 公交车{
	private static 语音 publicString1="到了,去往";
	private static 语音 publicString2="的乘客,请您前后门下车
,下车请走好";
	private static 语音 publicString3="get ready for your 
arrive";
	public 语音 报站(语音 站名,语音 周边){
		return 报站(站名,周边,null);
	}
	public 语音 报站(语音 站名,语音 周边,语音 其它){
		return 站名+publicString1+周边
+publicString2+publicString3+其它;
	}
	
}

重构的话是不是就是为了解决这样的问题才出现的呢?
一年之计在于春,一天之计在于晨,早上一个小时的车程,看来真的不能浪费掉,胡思乱想,为晚上写博准备素材。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics