多一点真诚、多一点套路、少一点随意--- 工厂模式Factory
package com.pattern.entityIn;
public interface Sender {
public void Send();
}
package com.pattern.entityImpl;
import android.util.Log;
import com.pattern.entityIn.Sender;
public class MailSender implements Sender {
private static final String TAG = "MailSender";
@Override
public void Send() {
Log.i(TAG, "Send: " );
System.out.println("this is mailSender!!!");
}
}
package com.pattern.entityImpl;
import com.pattern.entityIn.Sender;
public class SmsSender implements Sender {
@Override
public void Send() {
System.out.printf("SmsSender");
}
}
package com.pattern.factory;
import com.pattern.entityImpl.MailSender;
import com.pattern.entityImpl.SmsSender;
import com.pattern.entityIn.Sender;
public class SendFactory {
public static Sender produceMail() {
return new MailSender();
}
public static Sender produceSms() {
return new SmsSender();
}
}
package com.pattern.main;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.pattern.entityIn.Sender;
import com.pattern.factory.R;
import com.pattern.factory.SendFactory;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Sender sender = SendFactory.produceMail();
//这里可以随时改工厂模式SendFactory的方法,或者使用Switch case结构来选择方法
sender.Send();
}
}