單例模組兒

2021-09-30 15:29:50 字數 1116 閱讀 8138

#單例模組,存在的意義就是在模組被載入類時,給類新增類方法和建立物件例項等

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...