父类的方法调用子类的其他的方法--工厂模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mengtianqq/article/details/80938334

父类的方法调用子类的其他的方法--工厂模式

       父类的方法调用子类的其他的方法,也可以接口的方法调用子类的方法,也是虚拟父类调用子类的其他方法。工厂模式也是基于这个原理实现的。

一个短信发送信息的例子:使用了工厂模式来实现

虚拟发送短信的父类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);
			
		}
	}
}

结果:

阿里云短信:这是一条短信。
信信客短信:这是一条短信。

猜你喜欢

转载自blog.csdn.net/mengtianqq/article/details/80938334
今日推荐