No nie mogę: Mam ludzi w pracy co definiują Interfejs do struktury danych.
Jest sobie jakaś klasa/interfejs co w jakiejś metodzie zwraca strukturę danych? - zdefiniujmy też do tej struktury interfejs! A po co? Żeby było 'elastycznie', żeby ten kto będzie tego używał mógł 'rozszerzyć' tą strukturę o coś swojego! (jakby nie mógł po prostu korzystać z tej struktury tam gdzie jest to potrzebne ( ͡°ʖ̯͡°) ). I są potem takie potworki:
@zibizz1: rzecz w tym że struktura w ogóle nie zachowuje się jak klasa bo struktur nie ma zachowań tylko czyste dane. Interfejsy nie są do danych tylko do zachowań
@zibizz1: I dodatkowo: rozumiem że mokujesz np klasę string która jest strukturą danych (mimo metod które posiada) albo array albo DateTime albo jakiś Point2D lub Point3D itp itd?
@LeopoldStuff: masz jakieś błędne przekonanie. Klase przekazujesz przez refrencje a struktura jest przekazywana przez wartość i to chyba jedyna różnica. Po za tym zachowują sie tak samo. Struktury używasz np żeby zoptymalizować dostęp do pamieci bom ożesz trzymać ja na stacku a nie na heapie i tyle. Zarówno jedno jak i drugie może miec logike metody itp
@zibizz1: >Klase przekazujesz przez refrencje a struktura jest przekazywana przez wartość nie chodzi mi o strukturę w kontekście takim czy to jest value czy ref type. Struktura danych to pojęcie szersze. Obiekty mają zachowania i zależności a struktury danych mają tylko dane, ewentualnie jeszcze pomocnicze metody do zarządzania tymi danym (jak string czy DateTime). Nie ma to nic wspólnego z tym czy coś zdefiniowane zostało jako struct czy class. To czy
Jest sobie jakaś klasa/interfejs co w jakiejś metodzie zwraca strukturę danych? - zdefiniujmy też do tej struktury interfejs! A po co? Żeby było 'elastycznie', żeby ten kto będzie tego używał mógł 'rozszerzyć' tą strukturę o coś swojego! (jakby nie mógł po prostu korzystać z tej struktury tam gdzie jest to potrzebne ( ͡° ʖ̯ ͡°) ).
I są potem takie potworki:
interface ISomeData
{
bool Data1 { get; set; }
string Data2 { get; set; }
int Data3 { get; set; }
}
SomeData : ISomeData
{
bool Data1 { get; set; }
string Data2 { get; set; }
int Data3 { get; set; }
...
}
SomeData2 : ISomeData ...
#programowanie #programista15k #zalesie
Komentarz usunięty przez autora
nie chodzi mi o strukturę w kontekście takim czy to jest value czy ref type. Struktura danych to pojęcie szersze.
Obiekty mają zachowania i zależności a struktury danych mają tylko dane, ewentualnie jeszcze pomocnicze metody do zarządzania tymi danym (jak string czy DateTime). Nie ma to nic wspólnego z tym czy coś zdefiniowane zostało jako struct czy class.
To czy