-------
android培训、
java培训、期待与您交流! ----------
public class FactoryModeDemo {
/**
* 工厂模式
* 这里的工厂其实是生成接口的子类对象的地方
* 客户端在调用的时候不是直接调用子接口的实例对象
* 而是直接调用的工厂的这个类
*/
public static void main(String[] args) {
Factory factory=new Factory();
factory.show("AndroidPhone");
factory.show("ApplePhone");
factory.show("MiPhone");
factory.show("MyPhone");
factory.show("ZopoPhone"); //为假的时候就是使用的是MyPhone这个对象
factory.show("");
}
}
//制定一个手机发信息标准
interface Phone{
//具体发信息的方法让子类去实现
//每个手机都有发送信息
public abstract void send();
}
//安卓手机
class AndroidPhone implements Phone{
@Override
public void send() {
System.out.println("安卓手机发送了一条信息");
}
}
//苹果手机
class ApplePhone implements Phone{
@Override
public void send() {
System.out.println("苹果手机发送了一条信息");
}
}
//小米手机
class MiPhone implements Phone{
@Override
public void send() {
System.out.println("小米手机发送了一条信息");
}
}
class MyPhone implements Phone{
@Override
public void send() {
System.out.println("我的手机正在发送信息");
}
}
//建立工厂
//在工厂中创建接口的子类对象
//接口和抽象类是不能创建实例对象的
//有的时候我们看到的近似于多态的机制。这不是真正的创建实例对象
//我们只不过是让父类声明子类的实例对象
class Factory{
public static void show(String type){
if(type.equals("")){
System.out.println("类型不能为空");
return ;
//return可以结束方法。
}
Phone p=null;
//比较的是类名
if("AndroidPhone".equals(type)){
p=new AndroidPhone();
}else if("ApplePhone".equals(type)){
p=new ApplePhone();
}else if("MiPhone".equals(type)){
p=new MiPhone();
}else{
p=new MyPhone();
}
p.send(); //调用父类中的发送信息的方法
}
}