Wzorce projektowe - Proxy

0

Cześć, na studiach męczą mnie o wzorcach projektowych na C#, a ja prawdę mówiąc jest z tym językiem lekko "pokłócony" i nie wchodzi mi to. Osobiście wole rozwijać się w innym kierunku ale zostało to odgórnie narzucone i trzeba zaliczyć. Piszę z pytaniem czy znajdzie się tutaj ktoś kto zna dobrze ten język i byłby chętny mi pomóc z tym?

Poniżej załączam przykładowe zadanie "do uzupełnienia" oraz oczekiwany wynik. Jeśli ktoś lubi tego rodzaju łamigłówki mam tego więcej :)

 using System;

namespace Proxy
{

    public interface IClient
    {
        string GetData();
    }

    public class RealClient : IClient
    {
        //
        //

        public RealClient()
        {
            Console.WriteLine("RealClient: Initialized");
            Data = "WSEI data";
        }

        

        public string GetData()
        {
            //
            //
        }
    }


    public class ProxyClient : IClient
    {
        RealClient client = null;
        //
        //

        public ProxyClient(string password)
        {
            if (password == _pass)
            {
                //
                //
            }
            else
            {
                _authenticated = false; // dla pewności :)
                                        //
                                        //
            }
        }

        public string GetData()
        {
            if (_authenticated)
            {
                //
                //
            }
            //
            //
        }
    }


    class Program
    {
        static void Main(string[] args)
        {

            ProxyClient proxy1 = new ProxyClient("zlehaslo");
            //
            //

            ProxyClient proxy2 = new ProxyClient("dobrehaslo");
            //
            //

        }

    }

}

screenshot-20181201192201.png

0

Wzorce projektowe są w każdym języku. Chcesz pokłócić się z nimi wszystkimi?

0
baant napisał(a):

Wzorce projektowe są w każdym języku. Chcesz pokłócić się z nimi wszystkimi?

Oczywiście, że nie. Ale jeśli na co dzień zajmuję się HTML/CSS i tworze layouty to C# jest całkiem odległym tematem.

1

Ale poszedłeś na studia informatyczne jak mniemam a nie na studia tworzenia layoutów, więc niestety musisz się nauczyć podstaw z wielu różnych działek. Nikt za Ciebie fuszery tu nie odwali. Nawet sam nie spróbowałeś tylko wrzuciłeś treść zadania.... to brzmi jak leń i nierób a nie inżynier :)

0

Nie mam zamiaru wdawać się z Tobą w dyskusję. 4 pierwsze zadania napisałem sam z kolnymi już tak dobrze nie idzie wiec szukam pomocy, nie chcesz pomóc to swoje nikomu niepotrzebne zdanie zostaw dla siebie, bo nic nim nie wnosisz.

0

A miałeś chociaż w rękach książke do c#? Przebrnąłeś jakiś kurs w necie? Nie.
To podstawy i jakbyś sie troche chociaż pouczył to byś wiedział jak zrobić to zadanie

0
baant napisał(a):

A miałeś chociaż w rękach książke do c#? Przebrnąłeś jakiś kurs w necie? Nie
To podstawy i jakbyś sie troche chociaż pouczył to byś wiedział jak zrobić to zadanie

Chłopie rzucasz jakimiś oskarżeniami, a nie masz zielonego pojęcia o czym mówisz. Ale gadaj sobie zdrów, widocznie gdzie trzeba wylać swoją żółć ;)

0
using System;

namespace Proxy
{

    public interface IClient
    {
        string GetData();
    }

    public class RealClient :IClient
    {
        private string Data { get; }

        public RealClient()
        {
            Console.WriteLine("RealClient: Initialized");
            Data = "WSEI data";
        }

        public string GetData()
        {
            return Data;
        }
    }

    public class ProxyClient :IClient
    {
        private const string _pass = "dobrehaslo";
        private RealClient client = null;
        private bool _authenticated;

        public ProxyClient(string password)
        {
            if (password == _pass)
            {
                Console.WriteLine("ProxyClient: Initialized");
                _authenticated = true;
                client = new RealClient();
            }
            else
            {
                _authenticated = false; // dla pewności :)
                Console.WriteLine("ProxyClient: Access denied");
            }
        }

        public string GetData()
        {
            if (_authenticated)
            {
                return "Data from Proxy Client = " + client.GetData();
            }
            return String.Empty;
        }
    }

    class Program
    {
        static void Main(string[] args)
        { 
            ProxyClient proxy1 = new ProxyClient("zlehaslo");
            Console.WriteLine(proxy1.GetData());
            //

            ProxyClient proxy2 = new ProxyClient("dobrehaslo");
            Console.WriteLine(proxy2.GetData());
            //
        } 
    }
}
0

Wielkie dzięki, jesteś gość :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1