博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之工厂模式
阅读量:5164 次
发布时间:2019-06-13

本文共 940 字,大约阅读时间需要 3 分钟。

1,定义一个接口

public interface Phone {

public void Call();
}

2,写两个类实现此接口

public class Xiaomi implements Phone{

public void Call() {
System.out.println("小米为发烧而生");
}

}

public class IPhone implements Phone{

@Override

public void Call() {
System.out.println("使用苹果打电话");
}

}

3,定义一个类专门生产手机的类,相当于工厂

public class PhoneFactory {

// 创建一个方法用来生产手机,传入什么类型的手机就返回什么
public Phone getPhone(String phone){
if (phone.equals("XiaoMi")) {
Phone xiaomi=new Xiaomi();
return xiaomi;
}
if (phone.equals("IPhone")) {
return new IPhone();
}
return null;
}
}

4,定义一个测试类 进行测试即可

public class Test {

public static void main(String[] args) {
// 创建一个工厂类
PhoneFactory factory = new PhoneFactory();
// 使用工厂类 "生产"一个 IPhone
// "向下 转型"
IPhone iphone8 = (IPhone)factory.getPhone("IPhone");
iphone8.Call();
Phone iphone8P = factory.getPhone("IPhone");
iphone8P.Call();
Phone xiaomi = factory.getPhone("XiaoMi");
xiaomi.Call();
}
}

转载于:https://www.cnblogs.com/bigswallow/p/7689248.html

你可能感兴趣的文章
django for monkey(chapter one)
查看>>
wxPython 画图板
查看>>
Web APP 随笔
查看>>
组合数据类型练习,英文词频统计实例上
查看>>
Eclipse Python 开发环境搭建 pydev 插件
查看>>
Spring3的quartz定时任务
查看>>
AngularJS的简单表单验证
查看>>
face recognition[Euclidean-distance-based loss][Center Face]
查看>>
Python2.6-原理之类和oop(上)
查看>>
论自动化如何提高测试工作效率
查看>>
EasyUI TreeGrid 的使用
查看>>
主从复制延时判断
查看>>
配置完xadmin源码包后启动报错“ Apps aren't loaded yet.”
查看>>
visual studio 中使用的插件介绍
查看>>
ES6
查看>>
通用Hibernate-Dao
查看>>
关于JS中作用域的销毁和不销毁的情况总结
查看>>
88 -合并排序数组
查看>>
BZOJ 2049 LCT
查看>>
【模板】欧拉筛
查看>>