欢迎来到天天文库
浏览记录
ID:58451045
大小:1.36 MB
页数:18页
时间:2020-09-07
《第5讲 简单工厂模式课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5讲简单工厂模式创建型模式简单工厂模式概述简单工厂模式的结构与实现简单工厂模式的应用实例创建对象与使用对象简单工厂模式的优缺点创建型模式创建型模式(CreationalPattern)关注对象的创建过程创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对用户隐藏了类的实例的创建细节创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展创建型模式创建型模式关注点创建什么(What)由谁创建(Who)何时创建(Wh
2、en)创建型模式一览表模式名称定义使用频率简单工厂模式(SimpleFactoryPattern)定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。★★★☆☆工厂方法模式(FactoryMethodPattern)定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。★★★★★抽象工厂模式(AbstractFactoryPattern)提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。★★★★★建造者模式(Builde
3、rPattern)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。★★☆☆☆原型模式(PrototypePattern)使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。★★★☆☆单例模式(SingletonPattern)确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。★★★★☆简单工厂模式概述简单工厂模式示意图客户端工厂产品参数简单工厂模式基本实现流程具体产品类:将需要创建的各种不同产品对象的相关代码封装到具体产品类中抽象产品类:将具体产品类公共的代码进行
4、抽象和提取后封装在一个抽象产品类中工厂类:提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入参数的不同创建不同的具体产品对象客户端:只需调用工厂类的工厂方法并传入相应的参数即可得到一个产品简单工厂模式的定义简单工厂模式(SimpleFactoryPattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。类创建型模式简单工厂模式的定义在简单工厂模式中用于创建实例的方法通常是静态(static)方法,因此又被称为静态工厂方法(Static
5、FactoryMethod)模式要点:如果需要什么,只需要传入一个正确的参数,就可以获取所需要的对象,而无须知道其创建细节简单工厂模式的结构简单工厂模式的结构简单工厂模式包含以下3个角色Factory(工厂角色)Product(抽象产品角色)ConcreteProduct(具体产品角色)简单工厂模式的实现典型的抽象产品类代码abstractclassProduct{//所有产品类的公共业务方法publicvoidMethodSame(){//公共方法的实现}//声明抽象业务方法publicabstractvoidMeth
6、odDiff();}简单工厂模式的实现典型的具体产品类代码classConcreteProductAextendsProduct{//实现业务方法publicvoidMethodDiff(){//业务方法的实现}}简单工厂模式的实现classFactory{//静态工厂方法publicstaticProductGetProduct(stringarg){Productproduct=null;if(arg.Equals("A")){product=newConcreteProductA();//初始化设置product}
7、elseif(arg.Equals("B")){product=newConcreteProductB();//初始化设置product}returnproduct;}}简单工厂模式的实现典型的具体产品类代码publicstaticvoidmain(String[]args){Productproduct;product=Factory.GetProduct("A");//通过工厂类创建产品对象product.MethodSame();product.MethodDiff();}简单工厂模式的应用实例某软件公司要基于Ja
8、va语言开发一套图表库,该图表库可以为应用系统提供多种不同外观的图表,例如柱状图(HistogramChart)、饼状图(PieChart)、折线图(LineChart)等。该软件公司图表库设计人员希望为应用系统开发人员提供一套灵活易用的图表库,通过设置不同的参数即可得到不同类型的图表,而且可以较为方便地对图表库进行
此文档下载收益归作者所有