第2章简单工厂模式ppt课件.ppt

第2章简单工厂模式ppt课件.ppt

ID:59493513

大小:247.00 KB

页数:47页

时间:2020-09-13

第2章简单工厂模式ppt课件.ppt_第1页
第2章简单工厂模式ppt课件.ppt_第2页
第2章简单工厂模式ppt课件.ppt_第3页
第2章简单工厂模式ppt课件.ppt_第4页
第2章简单工厂模式ppt课件.ppt_第5页
资源描述:

《第2章简单工厂模式ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章简单工厂模式(SimpleFactory)(静态工厂方法模式(StaticFactoryMethod))创建型模式创建型模式概述创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性创建型模式隐藏类实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的创建型模式简单工厂模式(SimpleFactory)工厂方法模式(FactoryMethod)抽象工厂模式(AbstractFactory)建造者模式(Builder)原型模式(Prototype)单例模式(Singleton)创建型模式类

2、别工厂模式工厂模式将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式(工厂模式可以动态决定将哪一个类实例化)工厂模式有以下几种形态:简单工厂(SimpleFactory)模式工厂方法(FactoryMethod)模式抽象工厂(AbstractFactory)模式如何使用接口?假设有一个接口Api,然后有一个类Impl实现它,在客户端怎么用这个接口呢?通常都是在客户端创建一个Impl的实例,把它赋值给一个Api接口类型的变量,然后客户端就可以通过这个变量来操作接口的功能不用模式的解决方案public interface Api {public void 

3、test1(String s);}public class Impl implements Api{public void test1(String s) {System.out.println("The input s=="+s);}}public class Client {public static void main(String[] args) {Api api = new Impl();api.test1("测试!");}}Api api = new Impl();在客户端调用的时候,客户端不但知道接口,同时还知道具体的实现就是Impl。而接口的思想是“封装隔离

4、”,而Impl这个实现类,应该是被接口Api封装并同客户端隔离开的,也就是说,客户端根本就不应该知道具体的实现类是Impl。有何问题?问题描述:在Java编程中,出现只知接口而不知实现,该怎么办?有何问题?解决方案就是简单工厂简单工厂模式(SimpleFactory)(静态工厂方法(StaticFactoryMethod))提供一个创建对象实例的功能,而无需关心其具体实现。被创建实例的类型可以是接口、抽象类、具体类简单工厂定义分析上面的问题,虽然不能让模块外部知道模块内的具体实现,但是模块内部是可以知道实现类的,而且创建接口是需要具体实现类的是否可以在模块内部新建一个类,在

5、这个类里面来创建接口,然后把创建好的接口返回给客户端,这样外部应用就只需要根据这个类来获取相应的接口对象,然后就可以操作接口定义的方法了应用简单工厂来解决的思路通过SimpleFactory类生产产品,而对客户端隐藏产品产生的细节实作时定义一个产品接口,并透过特定静态方法来建立成品SimpleFactory类根据传入的参数决定创建出哪一种产品类的实例一个工厂类封装很多类的实例化(同一接口)简单工厂模式简单工厂模式简单工厂模式的类图结构UML工厂类角色Creator:工厂类在客户端的直接调用下,创建产品对象并返回该对象抽象产品角色Product:是工厂类所创建对象的父类或它们

6、共同的接口具体产品角色ConcreteProduct:工厂类所创建的任何对象都是这个角色的实例说明publicinterfaceProduct{}publicclassConcreteProductimplementsProduct{ publicConcreteProduct(){}}publicclassCreator{ publicProductfactory(){  returnnewConcreteProduct(); }}使用简单工厂重写前面的示例1)接口Api和实现类Impl都和前面的示例一样2)新创建一个简单工厂的对象,示例代码//工厂类,用来创造Api对象

7、public class Factory {public static Api createApi(){return new Impl();}}3)使用简单工厂public class Client {public static void main(String[] args) {         //重要改变,没有new Impl()了,取而代之Factory.createApi()Api api = Factory.createApi();api.test1("测试!");}}例1假设有一个音乐盒工厂,购买音乐

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。