基类设计概述

作者: CoderHG | 来源:发表于2019-10-07 00:02 被阅读0次

    一、视图

    注意点:
    1、纯代码创建试图,重写 initWithFrame: 方法就足够。
    2、XIB 加载视图,重写 awakeFromNib 方法就足够。
    3、重写 init 方法行不行?行,但是前提是不要重写以上提到的两个方法,否则错误❌。

    参考摘抄自:iOS开发中、如何选择重写初始化方法?

    二、Cell

    特指 iOS 中的 UITableViewCell 与 UICollectionViewCell,还有 UITableViewHeaderFooterView 也可归为此类,毕竟都有重用机制。比如 UITableViewCell 的基类提供的接口如下:

    //
    //  HGCell.h
    //  BaseClass
    //
    //  Created  by hong.zhu on 2016/9/3
    //  Copyright © 2016 CoderHG. All rights reserved.
    //  
    
    #import <UIKit/UIKit.h>
    
    /// 内部已考虑重用机制
    @interface HGCell : UITableViewCell
    
    /**
     返回一个Cell实例, 通常用于纯代码编写的子类
    
     @param tableView 当前表视图视图
     @return 返回Cell
     */
    + (instancetype)cellWithTableView:(UITableView*)tableView;
    
    /**
     返回一个Cell实例, 通常用于XIB
     
     @param tableView 当前表视图视图
     @return 返回Cell
     */
    + (instancetype)xibCellWithTableView:(UITableView*)tableView;
    
    /**
     返回一个空白Cell, 主要用于占位Cell
     
     @param tableView 当前表视图视图
     @return 返回Cell
     */
    + (id)blankCell:(UITableView*)tableView;
    
    @end
    
    

    比如 UICollectionViewCell 的基类提供的接口如下:

    //
    //  HGCVCell.h
    //  BaseClass
    //
    //  Created  by hong.zhu on 2016/9/3
    //  Copyright © 2016 CoderHG. All rights reserved.
    //  
    
    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    /// 内部已考虑重用机制
    @interface HGCVCell : UICollectionViewCell
    
    /**
     返回一个Cell实例, 通常用于纯代码编写的子类
     
     @param collectionView 当前表视图视图
     @return 返回Cell
     
     @note 内部已做异常处理, 可以不用提前注册 (在特殊情况下, 提前注册依然会 crash)
     */
    + (instancetype)cellWithCollectionView:(UICollectionView*)collectionView indexPath:(NSIndexPath*)indexPath;
    
    @end
    
    NS_ASSUME_NONNULL_END
    
    

    在项目中不是使用这样的基类行不行?肯定行,一般项目中 95% 的控制器中都需要使用到 Cell,如果每个地方将 三行代码封装到减少成一行代码, 何乐而不为之。

    参考摘抄自: HGBaseClass

    三、控制器

    关于控制器就有点厉害了,在使用上没有视图 (View || Cell) 那么复杂,所以控制器的封装在通用性方面往往是有针对性的。不管如何应该都如下所示:

    基类设计*针对其项目族

    参考摘抄自: HGBaseDesign

    四、小节

    基类是什么鬼? 有毛作用?

    基类需谨慎、规范看基类。 -- 鲁迅

    基类设计概述

    相关文章

      网友评论

        本文标题:基类设计概述

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