有一段時間我一直在想,我希望你們能分享你對這件事的看法。大約半年前,當我編寫一個由PLC控制的機器人時,我首先發現了這個問題。在結構化文本中,我使用get-functions從類中返回一個對象。這樣我就可以做任何我想要的類的成員/變量(使用getter和setter)。這爲我節省了很多工作,因爲我不必爲了從一個更深層的物體中獲取某些東西而做出單獨的功能。獲取「嵌入」變量或對象的getter是否允許/常用?
目前我正在用Qt C++進行編程,但又遇到了這個問題。我不確定我現在是否已經完全清楚(我不是英語母語的人,也不擅長編碼行話),所以我會試着用一個例子說清楚。 比方說,我有一個數組/矢量與它的班級中的多個對象。每個對象都有它自己的帶有類的數組(每個類都有學生,而不是編程類),每個類都有它自己的數組和學生,他們當然有名字,學號和年齡等。
Now我想獲得一個隨機的學生的名字。在Qt C++中,我會這樣做:
QString randomName = schoolVector.at(randomNumber)->getClassVector().at(anotherRandomNumber)->getStudentVector().at(yetAgainARandomNumber)->getName();
你可以看到我做了一些get函數來返回某個類中的對象。這樣,我可以輕鬆地操作類中的對象或變量。 這是我問這個問題的原因:這是要走的路嗎?在學校裏,他們教我使用getter和setter是很重要的,這樣當你不想要或者你不想讓其他人操作變量時,你就不能操縱變量。但是當我使用getter在classVector中返回一個類時,我仍然可以操縱那裏的任何東西。
任何人都可以告訴我常見的做法,並且如果使用for-loops找到矢量中的某個對象是正常的嗎?我真的很感激!
乾杯, 馬亭
你可能想給這個閱讀:https://stackoverflow.com/questions/32625274/public-variables-bad-practice-vs-getters-and-setters-functions – NathanOliver
感謝您發送該鏈接!這確實看起來很像我問的問題。所以,如果我理解正確,不是每個人都對這個問題認爲一致?但是當人們使用吸氣劑和吸附劑時,人們會怎麼做呢? – MartijnKor
通常它看起來像你所擁有的。真的,儘管我認爲你應該做的是在你的「學校」中有一個單獨的'student_list',它包含所有已註冊的學生,然後你可以簡單地從該列表中選擇一個隨機的學生。 – NathanOliver