Cześć!
Nie mam bladego pojęcia o wzorcach projektowych, a chciałbym zaprojektować funkcję kompresującą tekst przy pomocy kodowania huffmana (nazwijmy ją funkcją główną). Miałaby ona tylko wywoływać inne funkcje pomocnicze i zwracać żądaną wartość.
Pragnąłbym jednak, aby funkcje pomocnicze były widoczne jedynie dla funkcji głównej.
W C# można tworzyć klasy statyczne, co chyba pasowałoby w tej sytuacji. W C++ mogę stworzyć klasę z prywatnym konstruktorem domyślnym i statycznymi funkcjami pomocniczymi, a publiczną statyczną funkcję główną.
Mógłbym też po prostu ograniczyć dane funkcje pomocnicze do jednej jednostki translacji słowem kluczowym static i może coś pomącić z przestrzeniami nazw, ale wydaje mi się to niechlujne.
Jakie rozwiązanie podobnego problemu hermetyzacji funkcji byłoby najelegantsze? :)