- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
import Foundation
class UserAddress {
private var ID = Int32()
private var stateID = Int32()
private var eavObjectID = Int32()
private var firstName = String()
private var lastName = String()
private var companyName = String()
private var address = String()
private var address2 = String()
private var city = String()
private var stateName = String()
private var postalCode = String()
private var countryID = String()
private var phone = String()
func setID(ID: Int32) { self.ID = ID }
func setStateID(stateID: Int32) { self.stateID = stateID }
func setEavObject(eavObjectID: Int32) { self.eavObjectID = eavObjectID }
func setFirstName(firstName: String) { self.firstName = firstName }
func setLastName(lastName: String) { self.lastName = lastName }
func setCompanyName(companyName: String) { self.companyName = companyName }
func setAddress(address: String) { self.address = address }
func setAddressTwo(address2: String) { self.address2 = address2 }
func setCity(city: String) { self.city = city }
func setStateName(stateName: String) { self.stateName = stateName }
func setPostalCode(postalCode: String) { self.postalCode = postalCode }
func setCountryID(countryID: String) { self.countryID = countryID }
func setPhone(phone: String) { self.phone = phone }
func getID() -> Int32 { return self.ID }
func getStateID() -> Int32 { return self.stateID }
func getEavObject() -> Int32 { return self.eavObjectID }
func getFirstName() -> String { return self.firstName }
func getLastName() -> String { return self.lastName }
func getCompanyName() -> String { return self.companyName }
func getAddres() -> String { return self.address }
func getAddressTwo() -> String { return self.address2 }
func getCity() -> String { return self.city }
func getStateName() -> String { return self.stateName }
func getPostalCode() -> String { return self.postalCode }
func getCountryID() -> String { return self.countryID }
func getPhone() -> String { return self.phone }
}
Java головного мозга. Писал android девелопер
gorsash 06.05.2016 11:42 # +5
bormand 06.05.2016 18:49 # +6
kegdan 06.05.2016 21:48 # +1
1024-- 06.05.2016 21:50 # +1
guesto 06.05.2016 12:42 # +2
да, это болезнь
я не знаю свифта, то в ObjC для этого было @property.
наверняка в свифте еще проще
Вообще говоря геттеры и сеттеры вручную нигде уже не надо писать
ни в C# (там есть пропертис) ни в котлине (там они сами создаются)
и только в жабке нужно добывать уголек
С другой стороны класс с таким количеством полей которые можно установить и прочитать пахнет говном
как минимум адрес и имя нужно вынести в отдельные структуры
gorsash 06.05.2016 12:49 # 0
var id: Int { set {} get {} }
причём даже просто var id: Int - это уже проперти
guesto 06.05.2016 12:52 # 0
kegdan 06.05.2016 22:06 # +1
def 06.05.2016 12:52 # −1
В свифте var и есть @property.
А приведенный выше говнокод сокращается до
Получаем иммутебльную структуру, для мутабельности let заменить на var, для того, чтобы поля не инициализировать в init, типы сделать Optional и так же let заменить на var
guesto 06.05.2016 12:53 # 0
понял про let. Вот откуда это в котлине
roman-kashitsyn 06.05.2016 13:05 # 0
Врядли оттуда :)
guesto 06.05.2016 15:21 # 0
roman-kashitsyn 06.05.2016 17:47 # +1
Из ML, видимо.
gorsash 06.05.2016 12:56 # +4
Это только в жабе модно все поля заворачивать в аксессоры - авось в них нужно будет делать какое-то нестандартное поведение. Ведь потом, если понадобится, будет так сложно заменить поле на геттер или сеттер. Естественно, эти авось случаются в 0.1% случаев. Зато индусы в восторге - вместо 10 строк можно налепить 100.
guesto 06.05.2016 12:58 # +1
дел не только в поведении
еще нужно уметь туда брекпоинт ставить
gorsash 06.05.2016 13:06 # 0
3_14dar 11.05.2016 17:52 # 0
Dummy00001 06.05.2016 14:07 # +4
Очень давно этого (нестандартное поведение в аксессоре) не видел, к слову.
Современные разрабы набожно верят что аксессоры должны быть тривиальным возвратом/присвоением.
Это как бы и правильно, и логично, но только вопрос возникает: на кой хер тогда этот аксессор вообще нужен? Я понимаю в крестах с местными граблями двоичной совместимости - но в какой жабе?...
Vasiliy 11.05.2016 17:09 # +1