#單例模組,存在的意義就是在模組被載入類時,給類新增類方法和建立物件例項等
module singleton
#這個方法在模組被載入類時呼叫,傳入的引數是 類物件
def self.included(base)
#這個操作把另乙個模組直接新增到class物件上。類物件上的方法就是類方法。儘管模組中的方法是模組的例項方法。
base.extend(singletonclass); #讓類物件引入另外乙個模組:singletonclass
puts("singleton include!");
#建立類的例項,然後把類的new方法設為私有類方法,防止被呼叫,最後把類的例項存放到類的方法中。
myinstance=base.new(); #例項化
base.private_class_method :new #將該類物件的new方法設定為private,讓外部無法訪問
base.setclass(myinstance); #這個setclass 方法是singletonclass模組的例項方法,但是因為base.extend(singletonclass)將模組直接新增到了class物件上,即base上,所以這個時候setclass是base這個類物件的例項方法,即是某目標類的類方法。
endend
#這個模組附加上去的類方法,把類例項儲存在模組的例項變數中。也就是目標類的類變數中。
module singletonclass
def setclass(base)
puts("setclass");
@myclass=base;
return @myclass;
end#單例方法,僅僅返回類的保護例項變數。
def instance()
puts("instance");
return @myclass;
endend
class test
include singleton;
def say(val)
puts(val);
endend
test=test.instance();
test.say("sssssss");
#test=test.new(); # fail
檔案管理模組兒完成
客戶資訊管理 車輛資訊管理 駕駛員資訊管理 業務員資訊管理 四個檔案資訊管理功能極其類似,已經完成各自模組兒的增刪改查和模糊查詢功能以及分頁,點選修改可以回顯到表單中 1 今日完成任務 1 駕駛員資訊管理 2 業務員資訊管理 3 派車單登記 3 遇到的問題 1 派車單登記的外來鍵驗證問題 2 派車單...
理解nodejs的module模組兒
在 node.js 模組系統中,每個檔案都視為獨立的模組,node在執行某個模組兒時會生成乙個module物件 module paths users leinov github node api module node modules users leinov github node api nod...
理解nodejs的module模組兒
在 node.js 模組系統中,每個檔案都視為獨立的模組,node在執行某個模組兒時會生成乙個module物件 module paths users leinov github node api module node modules users leinov github node api nod...