Remote UserControl   otázka

VB.NET

Zdravíčko VBNet bohové...

Potřeboval bych poradit jak udělat jakýsi "dálkový ovladač"

Představte si, UserControl žárovka a UserControl spínač

Přidal bych si na Form UCžárovku a UCspínač a tomu spínači nastavil do property, kterou žárovku(y) obsluhuje...

A při přepnutí spínače by reagovala žárovka zap/vypnutim..

Poradíte mi jak na to?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

1. Vytvořte si interface IZarovka se dvěma procedurami pro žárovku:

    Public Interface IZarovka
        Sub Zapnout()
        Sub Vypnout()
    End Interface

2. Vytvořte třídu Zarovka, která bude tento interface implementovat.


    Public Class Zarovka
        Implements IZarovka

        Public Sub Zapnout() Implements IZarovka.Zapnout
            msgbox("Žárovka svítí.")
        End Sub

        Public Sub Vypnout() Implements IZarovka.Vypnout
            msgbox("Žárovka nesvítí.")
        End Sub
    End Class

3. Vytvořte třídu Spinac, která bude ovládat žárovku.

    Public Class Spinac
        Private _zarovka As IZarovka
        Public Property Zarovka() As IZarovka
            Get
                Return _zarovka
            End Get
            Set(ByVal value As IZarovka)
                _zarovka = value
            End Set
        End Property

        Public Sub ZapnoutZarovku()
            _zarovka.Zapnout()
        End Sub

        Public Sub VypnoutZarovku()
            _zarovka.Vypnout()
        End Sub
    End Class

4. V kódu pak vše volejte následovně:

    Dim mujSpinac = New Spinac
    mujSpinac.Zarovka = New Zarovka()
    mujSpinac.ZapnoutZarovku()
    mujSpinac.VypnoutZarovku()
   

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Místo dvou zbytečných metod bych volil jednu vlastnost typu Boolean.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

A mne nedošlo, prečo je potrebné rozhranie, ktoré implementuje trieda...nestačí jedna trieda?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jedná se o příklad použití dependency injection.

Co je dependency injection a proč se používá velice pěkně shrnul pan Linhart v tomto vlákně http://www.vbnet.cz/forum-tema--5141-zap... (příspěvek s datem 2.7.2011 22:13).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zvolil jsem tuto variantu, protože ze zadání není jasné, co přesně znamená Zapnout a Vypnout. Je možné, že se při těchto činnostech provádí ještě nějaký další kód.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback