设计模式之禅—23种设计模式详解_2 工厂模式
2017-09-12 15:21
477 查看
工厂模式:定义一个用于创建对象的借口,让子类决定实例化哪一个类
UML图示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/15/f0a35bea9ee0c39ac60b82edaa17fbab)
代码示例:
/**
* Created by nevenon 2017/9/12.
*/
public class MobileCompany {
public void main(String[] args[]){
AbstractProductFactory factory = new PhoneFactory();
factory.createPhone(XiaoMi.class);
factory.createPhone(HuaWei.class);
}
}
interface Phone{
public void call();
}
class XiaoMi implements Phone{
@Override
public void call(){
System.out.println("我是XiaoMi手机");
}
}
class HuaWei implements Phone{
@Override
public void call() {
System.out.println("我是HuaWei手机");
}
}
interface AbstractProductFactory{
public <T extends Phone> T createPhone(Class<T> c);
}
class PhoneFactory implements AbstractProductFactory{
@Override
public <T extends Phone> T createPhone(Class<T> c) {
try {
Phone phone = (Phone) forName(c.getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
UML图示:
代码示例:
/**
* Created by nevenon 2017/9/12.
*/
public class MobileCompany {
public void main(String[] args[]){
AbstractProductFactory factory = new PhoneFactory();
factory.createPhone(XiaoMi.class);
factory.createPhone(HuaWei.class);
}
}
interface Phone{
public void call();
}
class XiaoMi implements Phone{
@Override
public void call(){
System.out.println("我是XiaoMi手机");
}
}
class HuaWei implements Phone{
@Override
public void call() {
System.out.println("我是HuaWei手机");
}
}
interface AbstractProductFactory{
public <T extends Phone> T createPhone(Class<T> c);
}
class PhoneFactory implements AbstractProductFactory{
@Override
public <T extends Phone> T createPhone(Class<T> c) {
try {
Phone phone = (Phone) forName(c.getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
相关文章推荐
- 设计模式之禅—23种设计模式详解_0 概述
- java 23种设计模式详解01-02-03-工厂
- 设计模式之禅—23种设计模式详解_3 抽象工厂模式
- 设计模式之禅—23种设计模式详解_1 单例模式
- Java开发中的23种设计模式详解----工厂设计模式
- 23种设计模式之-工厂模式
- Java开发中的23种设计模式详解(转)
- Java开发中的23种设计模式详解
- Java开发中的23种设计模式详解----单例模式
- Java开发中的23种设计模式详解(转)
- Java开发中的23种设计模式详解
- 设计模式之创建型模式——简单工厂(又称为静态工厂不属于GOF23种设计模式以内)
- Java开发中的23种设计模式详解(转)
- 走穿java23种设计模式-4建造者模式详解
- Java开发中的23种设计模式详解(转)
- Java开发中的23种设计模式详解(转)
- Java开发中的23种设计模式详解----备忘录模式(Memento)
- Java开发中的23种设计模式详解(转)
- Java开发中的23种设计模式详解【带有源码】
- Java开发中的23种设计模式详解(转)