1. 程式人生 > >OC 類的設計時,什麼情況用類方法,什麼時候用物件方法啊?怎麼設計才最合理

OC 類的設計時,什麼情況用類方法,什麼時候用物件方法啊?怎麼設計才最合理

1) 我自己的標準是:類方法(+)應該是對整個模型層面的操作,例項方法(-)是對某單個模型的操作。

例如有一個朋友圈類,釋出朋友圈或者載入我的朋友圈應該是封裝成類方法,對某一條朋友圈評論或贊應該封裝成例項方法。

又如有一個使用者類,請求附近的使用者,應該寫成類方法,更新當前使用者的資料,應該寫成例項方法。 2) 工具類,基本不需要訪問任何成員變數的時候用類方法。主要全域性層面使用,很方便。需要單獨建立某個物件並且方法需要訪問類的成員變數就用物件方法。

所有類都能做的事情 , 類方法...如果有個別案例 就物件方法

比如NSString 可以設計一個, 一共有幾個英文字母的類方法, 這樣呼叫的時候 [NSString enCountWith:"a我a"]; 作為NSString的 類工具

引數是自己本身的時候 , 用類方法設計會更優把... 當然物件方法也能實現....NSUInteger count = ["a我a" enCount]; // 類方法更省記憶體, 提高效率.

待編輯...

相關推薦

OC 計時什麼情況方法什麼時候物件方法?怎麼設計合理

1) 我自己的標準是:類方法(+)應該是對整個模型層面的操作,例項方法(-)是對某單個模型的操作。 例如有一個朋友圈類,釋出朋友圈或者載入我的朋友圈應該是封裝成類方法,對某一條朋友圈評論或贊應該封裝成例項方法。 又如有一個使用者類,請求附近的使用者,應該寫成類方法,更新當

TVideoCapture的源碼繼承TCustomPanel用於視頻捕獲(到了SendMessage和SetWindowPos等API)good

per about yield tails visible messages rms man publish [cpp] view plain copy print? unit VideoCapture; interface

的關聯不同類屬性的調

div 不同類 i++ pub emp 年齡 財務部 code ati 下面有三個類,第一個Dept(部門),存放了兩個屬性,部門名稱和所在地址 public class Dept { private String name; private String

navigate是Router的一個方法主要來跳轉路由。

res spa 不變 dex avi cell 方法 plain 當前 navigate是Router類的一個方法,主要用來跳轉路由。 1 2 3 4 5 6 7 8 9 interface NavigationExtras { relativeTo

定義抽象Shape抽象方法為showArea()求出面積並顯示定義矩形Rectangle,正方形Square,圓 Circle根據各自的屬性,用showArea方法求出各自的面積在main方法中構造3個對象調showArea方法。(體現多態)

子類 protected new 都是 package 使用 類指針 3.1 shape 實現多態的三個條件:1.要有繼承2.要有抽象方法重寫3.用父類指針(引用)指向子類對象 重載重寫重定義的區別: 1.重載:在同一個類中進行;  編譯時根據參數類型和個數決定方法調用; 

HTML寫偽選擇器結構偽選擇器偽元素選擇器樣式

選擇 ref -s foo uia temp size con ive html,css

對父的調主要是參數和方法調

繼承 bsp pri load china 類的方法 調用父類 class sub #子類調用父類的方法 class Vehichle: Country=‘china‘ #名字=‘ales‘不好這樣 def __init__(self,name,s

學習之路(二)淺談:bash及其特性命令歷史以及戶管理及權限shell的

bash 管理權限 過了一周了,進度似乎有點懈怠,不過過了周末重整旗鼓啦shell(外殼)GUI:Gnome,KDE,xfceCLI:sh,csh,ksh,bashbash(父進程)-----bash(子進程)他們相互獨立彼此不知命令歷史:historybash支持的引號:‘ ’命令替換(鍵盤~的按鍵

直播APP開發擴展戶、會話和第三方登錄集成

集成 efault 創建 興趣 有效 common type 下載 初始化 直播APP開發擴展類庫用戶、會話和第三方登錄集成,允許我將些擴展類庫進行開源。原來此類庫的功能只是當前開發項目中的功能,我現將其抽離成可配置使用的擴展類庫,以供大家共享。此類庫主要特點有:1、可以和

OC 建立TableView基並結合MJRefresh實現上拉重新整理下拉載入

1.建立繼承自UITableView的基類BaseTableView: #import <UIKit/UIKit.h> @class BaseTableView; @protocol BaseTableViewDelegate <NSObject> @option

模板中使用友元函式的方式派生友元函式對基的成員使用情況

在一般友元函式的前面加上 template<typename T),注意在函式的宣告和定義處都要加這個模板 例如: //模板類,長方體類 template <typename ElementType> class Rectangle { ///*過載基類的輸入輸出運算子*/

編寫一個ArrayList來儲存1到10之間的數打亂順序後輸出按從小到大輸出按從大到小輸出。

/** * Created by whp on 2018/7/30. */ public class Test { public static void main(String[] args) { List list = new ArrayList();

實現一個圖書館實現借書入庫還書查書等功能要求資料可以儲存到檔案中退出後下次可以找回資料

第一步:標準化先獲得資訊 #coding=utf-8 import traceback import pickle import os import os.path class GRLlibrary(object): '''huiziz的圖書館''' def __init__(se

5個實力超群的手機APP有這幾個足夠了(系統、閱讀

手機是大家都離不開的工具之一,那麼你的手機中又有幾款手機稱心如意的了?現在隨著經濟的發展,市場上的APP也大量的被研發出來,在眾多的手機APP中,我們挑的眼花繚亂,不知道哪款實用,這就是典型的選擇困難症。 在眾多的手機APP中,小編覺得以下這幾款使用起來是很不錯的,若是你的

jQuery easyui dataGrid 動態改變排序欄位名一般情況在使用的時候我們會點選相應欄位進行排序這裡以JAVA為例後端的實體欄位有可能和資料庫的欄位不一致; 如:實體中的

jQuery easyui dataGrid 動態改變排序欄位名,一般情況下,在使用的時候,我們會點選相應欄位進行排序,這裡以JAVA為例,後端的實體類欄位有可能和資料庫的欄位不一致; 如:實體類中的屬性為userName,前臺filed="userName"而資料庫的欄位

為什麼做軟體專案會出現人多事少工作量大的情況

  人們常說人多力量大,似乎這才符合常理,但是往往在軟體專案開展的過程中依舊會出現人多、事少、工作量大的情況,這跟我們以往的認知大相徑庭。   首先,要解釋下標題的意思。人多,指的是同一個專案團隊、同一個小組或者同一個部門的範圍內;事少, 指的是做出的效果,真正的產出少;

static{}(即static塊)會在被載入的時候執行且僅會被執行一次一般來初始化靜態變數和呼叫靜態方法

這裡是一個工具類,因為連線配置資訊只需要執行一次就行所以採用static塊 static塊會最先執行 package com.my.jedis; import java.io.IOException; import java.io.InputStream; import