正在进行安全检测...

发布时间:1714391202   来源:文档文库   
字号:

比较几种创建型模式的优缺点,仔细考察这几种模式的区别和相关性。
第一类是工厂模式,工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。
工厂模式有三种形态:简单工厂模式;工厂方法模式;抽象工厂模式是。前两者是类的创建模式,后者是对象的创建模式。
简单工厂:
简单工厂模式是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例,涉及工厂角色(Creator抽象产品(Product角色及具体产品(Concrete Product角色等三个角色。
优点:
模式的核心是工厂类,该类中含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅负责“消费”产品。
简单工厂模式实现了对责任的分割。
缺点:
当产品类有复杂的多层次等级结构时,工厂类只有它自己。
模式中工厂类集中了所有的产品创建逻辑,形成一个无所不知的全能类。


将多个创建逻辑放在一个类中,当产品类有不同接口种类时,工厂类需要判断在什么时候创建某种产品,使得系统在将来进行功能扩展时较为困难。
该模式采用静态方法作为工厂方法,而静态方法无法由子类继承,因此工厂角色无法形成基于继承的等级结构。
简单工厂模式只在有限的程度上符合“开-闭”原则。
工厂方法:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。工厂方法模式是简单工厂模式的进一步抽象和推广,其基本思想是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。
优点:
多态性:客户代码可以做到与特定应用无关,适用于任何实体类
子类可以重写新的实现,也可以继承父类的实现。加一层间接性,增加了灵活性。
良好的封装性,代码结构清晰。扩展性好,在增加产品类的情况下,只需要适当修改具体的工厂类或扩展一个工厂类,就可“拥抱变化”屏蔽产品类。产品类的实现如何变化,调用者都不需要关心,只需关心产品的接口,只要接口保持不变,系统中的上层模块就不会发生变化。
典型的解耦框架。高层模块只需要知道产品的抽象类,其他的实现类都不需要关心,

本文来源:https://www.2haoxitong.net/k/doc/76146fd328ea81c758f57892.html

《正在进行安全检测....doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

相关推荐