jak zapewnić unikalność property na poziomie kompilacji?

jak zapewnić unikalność property na poziomie kompilacji?
JA
  • Rejestracja: dni
  • Ostatnio: dni
0

cześć
tworzę sobie interfejs, jednym z jego pół jest kod
ten kod to string

obiekt ma kod - ma też inne pola, ale kod musi byc unikalny
podczas procesu wysyłane są te kody - oraz są zapisywane w logach

może być to GUID ale traci się wtedy opisowość
może być Dictionary, Set + testy - ale wiadomo, jak cos można zapomnieć gdzies dodać to sie zapomni i to juz jest niewygodne

może Atrybut?

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0

A może funkcja skrótu i olać potencjalne kolizje?
Do logów zwykle to wystarcza.

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
2

Nie zapewnisz unikalności wartości właściwości instancji klasy na etapie kompilacji, bo instancje są tworzone runtime.
Co docelowo chcesz osiągnąć?

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5676
0
jakubek napisał(a):

może być to GUID ale traci się wtedy opisowość

To może potrzebujesz dwa kody? GUID i kod opisowy?

może być Dictionary, Set + testy - ale wiadomo, jak cos można zapomnieć gdzies dodać to sie zapomni i to juz jest niewygodne

Nic nie zrozumiałem, ale ja jestem Javovcem a hobbistycznie Haskellowcem więc nie czuję się z tym źle

superdurszlak
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 2026
1

Ale jak na poziomie kompilacji? Na poziomie kompilacji tego nie zrobisz. Nie słyszałem o czymś takim jak SQLowe unique contraint dla atrybutów/instancji obiektów w językach, z którymi miałem styczność.

Najbliższe temu, co chcesz osiągnąć, byłoby przypisywanie nowego GUID / UUID każdej instancji w runtime. Możesz to schować jako default w konstruktorze / builderze / fabryce i nie ruszać poza np. testami dla kolizji, o ile czujesz że zabolą. Istnieje ryzyko wystąpienia kolizji (w końcu pula możliwych UUID-ków jest skończona), w praktyce jeśli nie będziesz ich trzymać nie wiadomo ile, to ryzyko jest bardzo małe. Jak nie jesteś pewien, policz sobie ze wzorów lub sprawdź w kalkulatorach online.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.