zoukankan      html  css  js  c++  java
  • 八:类工厂方法

    一:基本用法

    类工厂方法作用:提高编码效率,快速创建对象的方法

    规范:1、一定是+开头

         2、方法以类名开头,首字母小写。

       3、一定有返回值,返回类型为id/instancetype

    比如:在类的声明和实现中

    无参数:

    @interface Person : NSObject
    
    + (instancetype)person;
    
    @end
    @implementation
    
    + (instancetype)person{
        return [[Person alloc] init];
    }
    
    @end

    在主函数创建对象中就可以直接使用,简化代码。

    Person *p1 = [Person person];  //此处的Person person的作用相当于Person new

    有参数:

    @interface Person : NSObject
    
    @property int age;
    + (instancetype)personWithAge:(int)age;
    
    @end
    @implementation
    
    + (instancetype)personWithAge:(int)age
    {
        Person *p = [[self alloc] init];  //此处的self不要使用Person
        p.age = age;
        return p;
    }
    
    @end

    在主函数中就可以直接创建对象使用

    Person *p2 = [Person personWithAge:10];

    二、扩展

    给一个类提供自定义构造方法和自定义工厂方法,都是用于快速创建一个对象(初始化对象),本身苹果底层的使用规则也是如此,例如:

    1 NSString *p = [[NSString alloc] init];
    2 NSString *p = [NSString string];
    3 NSString *p1 = [[NSString alloc] initWithString:(nonnull NSString *)];
    4 NSString *p1 = [NSString stringWithString:(nonnull NSString *)];
    5     
    6 NSArray *a = [[NSArray alloc] init];
    7 NSArray *a = [NSArray array];
    8 NSArray *a1 = [[NSArray alloc] initWithObject:(nonnull id)];
    9 NSArray *a1 = [NSArray arrayWithObject:(nonnull id)];
  • 相关阅读:
    【转】15 个 JavaScript Web UI 库
    【转】C# WebRequest发起Http Post请求模拟登陆并cookie处理示例
    【转】33个JavaScript自动完成脚本
    大数据运算问题
    页面占位符的使用
    sql 数据库默认值问题
    jquery动态绑定像Repeater和dataList一样绑定数据源
    seo页面优化的要点
    asp.net控件不可乱用的属性
    jquery经验篇
  • 原文地址:https://www.cnblogs.com/hissia/p/5433582.html
Copyright © 2011-2022 走看看