讲课课件(工厂方法、抽象工厂模式.ppt

讲课课件(工厂方法、抽象工厂模式.ppt

ID:49412111

大小:851.50 KB

页数:30页

时间:2020-02-06

讲课课件(工厂方法、抽象工厂模式.ppt_第1页
讲课课件(工厂方法、抽象工厂模式.ppt_第2页
讲课课件(工厂方法、抽象工厂模式.ppt_第3页
讲课课件(工厂方法、抽象工厂模式.ppt_第4页
讲课课件(工厂方法、抽象工厂模式.ppt_第5页
资源描述:

《讲课课件(工厂方法、抽象工厂模式.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、面向对象程序设计 (抽象工厂/工厂方法)主讲人:叶溶课件结构与知识体系11.概念2.简单工厂模式3.工厂方法模式4.抽象工厂模式5.总结工厂模式有以下几种形态:简单工厂(SimpleFactory)模式 工厂方法(FactoryMethod)模式 抽象工厂(AbstractFactory)模式工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。概念1122简单工厂模式定义:专门定义一个类来负责创建其他类的实例被创建的实例通常都具有共同的父类或接口。简单工厂模式又称为静态工厂方法(StaticFactory

2、Method)模式,属于类的创建型模式,通常根据一个条件(参数)来返回不同的类的实例。意图:提供一个类,由它负责根据一定的条件创建某一具体类的实例2简单工厂模式比如说,你有一个描述你的后果园的系统,在你的后果园里有各种的花,但还没有水果你现在要往系统里引进一些新的类,用来描述下列的水果:   葡萄Grapes草莓Strawberry苹果Apple2简单工厂模式2简单工厂模式2简单工厂模式作为小花果园的主人兼园丁(如同一个可以创建水果产品的工厂一样),也是系统的一部分,自然要由一个合适的类来代表,这个类就是FruitGardener类。2简单工厂

3、模式2简单工厂模式演示2简单工厂模式优点:简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。通过它,外界可以从直接创建具体产品对象的尴尬局面中摆脱出来。外界与具体类隔离开来,偶合性低。2简单工厂模式缺点:工厂类集中了所有实例的创建逻辑,容易违反高内聚的责任分配原则虽然简单工厂模式能够适应一定的变化,但是它所能解决的问题是远远有限的。它所能创建的类只能是事先教考虑到的。应用情景工厂类负责创建的对象比较少客户只知道传入了工厂类的参数,对于何始创建对象(逻辑)不关心3工厂方法模式定义工厂方法模式又称为工厂模式,也叫虚拟构造器(Vir

4、tualConstructor)模式或者多态工厂模式(PolymorphicFactory),在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建)哪一个类。意图定义一个用户创建对象的接口,让子类决定实例化哪一个类,工厂方法模式使一个类的实例化延迟到其子类。3工厂方法模式在简单工厂模式中,一个果园只有一个园丁,管理全部果树,现在我们果园扩大规模,雇佣新园丁,规定每个新园丁专门负责一种水果,也就是说:葡萄园的园丁只管理葡萄、苹果园的园丁只管理

5、苹果。这样园丁们各负其责,互不相关。3工厂方法模式3工厂方法模式取代了过去的全能角色的是一个抽象的园丁,这个角色规定出具体园丁角色需要实现的具体职能而真正负责作物管理的则是各种作物的具体园丁角色。3工厂方法模式演示3工厂方法模式3优点:它能够使工厂可以自主确定创建何种产品对象。而且如何创建一个具体产品的细节完全封装在具体工厂内部,符合高内聚,低耦合。在系统中加入新产品时,无需修改抽象工厂和抽象产品提供的接口,无需修改客户端,也无需修改其他的具体工厂和具体产品。缺点:在添加新产品时,需要编写新的具体产品类(其实这不算一个缺点,因为这是不可避免的),

6、要增加与之对应的具体工厂类。工厂方法模式应用情景:类不知道自己要创建哪一个对象时。类用它的子类来指定创建哪个对象。当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候  。3工厂方法模式4意图:提供一个创建一系列相关或相互依赖对象的接口而无需指定它们具体的类。抽象工厂模式4抽象工厂模式4抽象工厂模式现在果园又引进蔬菜种类,这样果园就有了蔬菜和果树两种植物。引进蔬菜不久之后,果园又扩大规模,现在在南方和北方都有了果园,但是蔬菜或是水果的种植方式在南方和北方是不一样的,因此,南方的果园的园丁只管理南

7、方的蔬菜和水果,北方的果园的园丁只管理北方的蔬菜和水果。4抽象工厂模式4抽象工厂模式4演示抽象工厂模式4优点:隔离了具体类的生成,客户不需要知道怎样生成了每一个具体产品,什么时间生成的。它将客户与具体的类分离,依赖于抽象类,耦合性低。它有利于更换产品系列,由于客户端只依赖于抽象类,更换产品系列时,只须更改一下具体工厂名就行了。抽象工厂模式4缺点:难以支持新种类的产品。难以扩展抽象工厂以生产新种类的产品。这是因为抽象工厂的个数确定了可以被创建的产品集合,支持新种类的产品就需要扩展该工厂接口,这将涉及抽象工厂类及其所有子类的改变。应用情景:同一个产品

8、族的产品在一起使用时,而且它们之间是相互依赖的,不可分离。系统需要由相互关联的多个对象来构成。你想提供一组对象而不显示它们的实现过程,只

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

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

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