博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建型模式(前引)简单工厂模式Simple Factory
阅读量:5901 次
发布时间:2019-06-19

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

一引出的原因(解决下面的问题)

简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。
在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 
 
二代码实现
1.创建接口
public interface TV{    public void play();}

 

2.创建接口的实现类

 
HaierTV.java
public class HaierTV implements TV{    public void play()    {        System.out.println("海尔电视机播放中......");    }}
HisenseTV.java
public class HisenseTV implements TV{    public void play()    {        System.out.println("海信电视机播放中......");    }    }

3.创建工厂类

public class TVFactory{    public static TV produceTV(String brand) throws Exception    {        if(brand.equalsIgnoreCase("Haier"))        {            System.out.println("电视机工厂生产海尔电视机!");            return new HaierTV();        }        else if(brand.equalsIgnoreCase("Hisense"))        {            System.out.println("电视机工厂生产海信电视机!");            return new HisenseTV();        }        else        {            throw new Exception("对不起,暂不能生产该品牌电视机!");        }    }}

 

三.经典应用

权限管理

四.在Java语言中的应用

1. 在JDK类库中广泛使用了简单工厂模式,如工具类java.text.DateFormat,它用于格式化一个本地日期或者时间。
public final static DateFormat getDateInstance();public final static DateFormat getDateInstance(int style);public final static DateFormat getDateInstance(int style,Locale locale);

 2.Java加密技术

//获取不同加密算法的密钥生成器KeyGenerator keyGen=KeyGenerator.getInstance("DESede");//创建密码器Cipher cp=Cipher.getInstance("DESede");

 

 

转载于:https://www.cnblogs.com/Mike-zh/p/3629722.html

你可能感兴趣的文章
STM8串口初始化寄存器配置
查看>>
ReactNative常用组件汇总
查看>>
nested exception is java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
查看>>
“正在注册字体”问题解决
查看>>
windows10 更新后要输入2次密码才能进入系统
查看>>
iOS开发-OpenGL ES入门教程1
查看>>
平衡二叉树(AVL树)
查看>>
面向对象思想(第一天)
查看>>
微信小程序 js逻辑
查看>>
linux 安装 sftp
查看>>
openStack queens
查看>>
C++中map用法详解《转》
查看>>
(转)EOSIO开发(四)- nodeos、keosd与cleos
查看>>
MVC5+EF6 入门完整教程八
查看>>
Java 设计模式专栏
查看>>
常用Mysql或者PostGresql或者Greenplum的语句总结。
查看>>
工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型
查看>>
appium 报错
查看>>
phpquery中文手册
查看>>
微信nickname乱码(emoji)及mysql编码格式设置(utf8mb4)解决的过程
查看>>