父类的方法调用子类的其他的方法--工厂模式
父类的方法调用子类的其他的方法,也可以接口的方法调用子类的方法,也是虚拟父类调用子类的其他方法。工厂模式也是基于这个原理实现的。
一个短信发送信息的例子:使用了工厂模式来实现
虚拟发送短信的父类SmsCore
SmsCore:
public class SmsFractory {
public static SmsCore createSmsCore(int type){
SmsCore mSmsCore =null;
switch(type){
case 1:
mSmsCore= new AliyunCore();
break;
case 2:
mSmsCore = new XxkSmsCore();
break;
}
return mSmsCore;
}
}
具体的子类,阿里云信息平台的:
AliyunCore:
public class AliyunCore extends SmsCore {
private String smsType="阿里云短信:";
private String getSmsType(){
return smsType;
}
public Boolean send(String content) {
// TODO Auto-generated method stub
System.out.println(getSmsType() +content);
return true;
}
}
一个具体短信发送的子类,基于信信客短信实现:
XxkSmsCore:
public class XxkSmsCore extends SmsCore {
private String smsTypes="信信客短信:";
private String getSmsTypes(){
return smsTypes;
}
public Boolean send(String content) {
// TODO Auto-generated method stub
System.out.println(getSmsTypes() +content);
return true;
}
}
短信发送的工厂,工厂类:
SmsFractory:
public class SmsFractory {
public static SmsCore createSmsCore(int type){
SmsCore mSmsCore =null;
switch(type){
case 1:
mSmsCore= new AliyunCore();
break;
case 2:
mSmsCore = new XxkSmsCore();
break;
}
return mSmsCore;
}
}
测试短信发送的调用类,也是mian方发类:
SmsSend:
public class SmsSend {
public static void main(String[] args){
String smsContent ="这是一条短信。";
SmsCore mSmsCore =null;
mSmsCore = SmsFractory.createSmsCore(1);
if(mSmsCore !=null){
mSmsCore.send(smsContent);
}
mSmsCore = SmsFractory.createSmsCore(2);
if(mSmsCore !=null){
mSmsCore.send(smsContent);
}
}
}
结果:
阿里云短信:这是一条短信。
信信客短信:这是一条短信。