• iOS设计模式-抽象工厂


    定义:用于创建一系列有关联或相互依存的对象,而不必指定其具体的类核创建细节

    类型:对象创建

    注:

                       抽象工厂                                         工厂方法

    ------------------------------------------

    通过对象组合创建抽象产品                        通过类继承创建抽象产品

    创建多系列产品                                      创建一种产品

    必须修改父类的接口才能支持新的产品         子类化创建者并重载工厂方法以创建新产品

    ------------------------------------------

    类图:

    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
    @interface AbstractFactory : NSObject
    
    +(AbstractFactory *)factory;
    
    - (UIView *)customView;
    
    @end
    #import "AbstractFactory.h"
    #import "AbstractFactoryA.h"
    #import "AbstractFactoryB.h"
    
    @implementation AbstractFactory
    +(AbstractFactory *)factory{
    #if defined (USE_A)
        return [[AbstractFactoryA alloc]init];
    #elif defined (USE_B)
        return [[AbstractFactoryB alloc]init];
    #else
        return nil;
    #endif
    }
    
    - (UIView *)customView{
        return nil;
    }
    
    @end
    #import "AbstractFactory.h"
    
    @interface AbstractFactoryA : AbstractFactory
    
    @end
    #import "AbstractFactoryA.h"
    
    @implementation AbstractFactoryA
    
    - (UIView *)customView{
        return [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
    }
    
    @end
    #import "AbstractFactory.h"
    
    @interface AbstractFactoryB : AbstractFactory
    
    @end
    #import "AbstractFactoryB.h"
    
    @implementation AbstractFactoryB
    
    - (UIView *)customView{
         return [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
    }
    
    @end
  • 相关阅读:
    pillow模块的用法 + 随机验证码
    jquery文件阅读器 显示需要上传图片的预览功能
    pycharm永久激活方式
    pycharm汉化
    10.25网络编程到并发编程
    10.15 迭代器,生成器到常用模块的小结
    10.14 面向对象小结
    十一天学习内容总结大纲
    pip镜像源的替换
    前端jQuery导入方式
  • 原文地址:https://www.cnblogs.com/muzijun/p/5749747.html
Copyright © 2020-2023  润新知