美文网首页八天学会OC
第04天OC语言(14):类工厂方法基本概念

第04天OC语言(14):类工厂方法基本概念

作者: liyuhong | 来源:发表于2017-07-21 17:33 被阅读19次
    • 不要等到明天,明天太遥远,今天就行动。
    须读:看完该文章你能做什么?

    能学会基本创建类工厂方法

    学习前:你必须会什么?

    什么是类,什么是类方法

    1.什么是类[替换链接 Day01-05-类与对象],什么是类方法[替换链接 Day01-09-第一个OC类方法
    ]
    生活中描述事物无非就是描述事物的名称、属性和行为
        人:年龄、身高、体重
    程序如何表现一个类(下面只不过是简单的一个声明而已):
    @interface Person : NSObject
    {
     int _age;//年龄
    }
    // 行为
    - (void)eat;// 对象方法 需要实例化一个对象 才能调用 [[Person new] eat];
    + (void)eat;// 类方法以+开头 直接使用类调用 [Person eat];
    @end
    

    一、本章笔记
     一、
     什么是类工厂方法:
         用于快速创建对象的类方法,我们称之为类工厂方法
         类工厂方法中 主要用于 给对象分配存储空间 和 初始化这块存储空间
     规范:
         1.一定是类方法
         2.方法名 以类的名称开头, 首字母小写
         3.一定有返回值, 返回值是 id/instancetype
     二、
         自定义类工厂方法 是苹果的一个规范,
         一般情况下,我们会给一个类提供自定义构造方法 和自定义类工厂方法
         用于创建一个对象
    
    
    二、code
    main.m
    #pragma mark 14-类工厂方法基本概念
    #pragma mark 概念
    /*
     一、
     什么是类工厂方法:
         用于快速创建对象的类方法,我们称之为类工厂方法
         类工厂方法中 主要用于 给对象分配存储空间 和 初始化这块存储空间
     规范:
         1.一定是类方法
         2.方法名 以类的名称开头, 首字母小写
         3.一定有返回值, 返回值是 id/instancetype
     二、
         自定义类工厂方法 是苹果的一个规范,
         一般情况下,我们会给一个类提供自定义构造方法 和自定义类工厂方法
         用于创建一个对象
     */
    #pragma mark - 代码
    #import <Foundation/Foundation.h>
    #pragma mark 类
    
    #import "Person.h"
    
    #pragma mark - main函数
    int main(int argc, const char * argv[])
    {
        
    //    Person *p = [Person person];
    //    p.age = 20;
    //    NSLog(@"age = %i",p.age);
    
        Person *p = [Person personWithAge:33];
        NSLog(@"age = %i",p.age);
    
    //    [[NSString alloc]init];
    //    [NSString string];    
    //    [NSString alloc]initWithString:<#(nonnull NSString *)#>
    //    [NSString stringWithString:<#(nonnull NSString *)#>]
        
    //    [[NSArray alloc]init];
    //    [NSArray array];
    //    [NSArray alloc]initWithObjects:<#(nonnull id), ...#>, nil
    //    [NSArray arrayWithObjects:<#(nonnull id), ...#>, nil]
        
        return 0;
    }
    
    
    Person
    >>>.h
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    
    @property int age;
    
    /*
     什么是类工厂方法:
     用于快速创建对象的类方法,我们称之为类工厂方法
     类工厂方法中 主要用于 给对象分配存储空间 和 初始化这块存储空间
     
     规范:
     1.一定是类方法
     2.方法名 以类的名称开头, 首字母小写
     3.一定有返回值, 返回值是 id/instancetype
     */
    
    + (instancetype)person;
    + (instancetype)personWithAge:(int)age;
    
    @end
    
    >>>.m
    #import "Person.h"
    
    @implementation Person
    
    /*
    + (instancetype)person
    {
        Person *p = [Person alloc];
        Person *p1 = [p init];
        return p1;
    }
     */
    
    + (instancetype)person
    {
        return [[Person alloc]init];
    }
    
    + (instancetype)personWithAge:(int)age
    {
        Person *p = [[Person alloc]init];
        p.age = age;
        
        return p;
    }
    @end
    
    

    相关文章

      网友评论

        本文标题:第04天OC语言(14):类工厂方法基本概念

        本文链接:https://www.haomeiwen.com/subject/goovhxtx.html