Ruby/Kontrola dostępu: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje)
mNie podano opisu zmian
Szymon wro (dyskusja | edycje)
mNie podano opisu zmian
Linia 60:
Moglibyśmy oczekiwać, że <tt>test.engine(6)</tt> zwróci <tt>12</tt>, ale zamiast tego nauczyliśmy się, że <tt>engine</tt> jest niedostępny, gdy odgrywamy rolę użytkownika obiektu <tt>Test</tt>. Tylko inne metody klasy <tt>Test</tt>, takie jak <tt>times_two</tt> mogą korzystać z <tt>engine</tt>. Od nas wymagane jest posługiwanie się publicznym interfejsem, który składa się z metody <tt>times_two</tt>. Programista, który jest pod kontrolą tej klasy może zmieniać <tt>engine</tt> swobodnie (tutaj, być może zmieniając <tt>b*2</tt> na <tt>b+b</tt> i argumentując to przypuszczalnie wzrostem wydajności) bez wpływania na to jak użytkownik współdziała z obiektami klasy <tt>Test</tt>. Ten przykład jest oczywiście zbyt prosty by był użyteczny; korzyści z metod kontroli dostępu staną się bardziej widoczne tylko wtedy, gdy zaczniemy tworzyć bardziej skomplikowane i interesujące klasy.
<noinclude>
{{ProstaNawigacja|spis=Ruby|poprzart=Ruby/PrzedefiniowaniePrzedefiniowywanie metod|poprz=PrzedefiniowaniePrzedefiniowywanie metod|nastart=Ruby/Metody singletonowe|nast=Metody singletonowe}}
</noinclude>