java中接口与实现接口,包含抽象工厂(代码)

package AbstractFactory;
/**
 * 3G接口
 * @author L-Seven
 *
 */
interface I3G{
void show();
}
/**
 * CDMA接口
 * @author L-Seven
 *
 */
interface ICDMA{
void show();
}
/**
 * 实现Apple3G
 * @author L-Seven
 *
 */
class Apple3G implements I3G{


@Override
public void show() {
System.out.println("Apple3G");
}

}
/**
 * 实现Nokia3G
 * @author L-Seven
 *
 */
class Nokia3G implements I3G{


@Override
public void show() {
System.out.println("Nokia3G");
}

}
/**
 * 实现AppleCDMA
 * @author L-Seven
 *
 */
class AppleCMDA implements ICDMA{


@Override
public void show() {
System.out.println("AppleCMDA");
}

}
/**
 *实现 NokiaCMDA
 * @author L-Seven
 *
 */
class NokiaCMDA implements ICDMA{


@Override
public void show() {
System.out.println("NokiaCMDA");
}

}
/**
 * 选择工厂
 * @author L-Seven
 *
 */
public abstract class AbstractFactory {
public abstract I3G get3G();
public abstract ICDMA getCDMA();
public static AbstractFactory chooseFactory(char f){
switch (f) {
case 'a':
return new AppleFactory();
case 'n':
return new NokiaFactory();
default:
return null;
}
}
}
/**
 * Apple工厂
 * @author L-Seven
 *
 */
class AppleFactory extends AbstractFactory{


@Override
public I3G get3G() {
return new Apple3G();
}


@Override
public ICDMA getCDMA() {
return new AppleCMDA();
}

}
/**
 * Nokia工厂
 * @author L-Seven
 *
 */
class NokiaFactory extends AbstractFactory{


@Override
public I3G get3G() {
return new Nokia3G();
}


@Override
public ICDMA getCDMA() {
return new NokiaCMDA();
}

}
/**
 * 测试类
 * @author L-Seven
 *
 */
class AbstractFactoryTest{
public static void main(String[] args) {
AbstractFactory.chooseFactory('a').get3G().show();
AbstractFactory.chooseFactory('a').getCDMA().show();
AbstractFactory.chooseFactory('n').get3G().show();
AbstractFactory.chooseFactory('n').getCDMA().show();
}

}

//图为输出结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值