示例#1
0
 static void Main() {
   Console.WriteLine("Proxy Pattern\n");
   
   ISubject subject = new Proxy();
   Console.WriteLine(subject.Request());
   Console.WriteLine(subject.Request());
   ProtectionProxy subject = new ProtectionProxy();
   Console.WriteLine(subject.Request());
        private static void ProtectionProxySample()
        {
            var classWithoutPermission = new ProtectionProxy(false);

            ErrorUtilities.LogException(classWithoutPermission.SensitiveMethod);

            var classWithPermission = new ProtectionProxy(true);

            Console.WriteLine(classWithPermission.SensitiveMethod());
        }
示例#3
0
    //Changed From Main
    static void Main2()
    {
        Console.WriteLine("Proxy Pattern\n");
        ISubject subject = new Proxy();

        Console.WriteLine(subject.Request());
        Console.WriteLine(subject.Request());
        subject = new ProtectionProxy();
        Console.WriteLine(subject.Request());
        Console.WriteLine((subject as ProtectionProxy).Authenticate("Secret"));
        Console.WriteLine((subject as ProtectionProxy).Authenticate("Abracadabra"));
        Console.WriteLine(subject.Request());
    }
示例#4
0
    public static void Main()
    {
        ISubject subject = new Proxy();

        Console.WriteLine(subject.Request());

        ProtectionProxy subject2 = new ProtectionProxy();

        Console.WriteLine(subject2.Request());

        Console.WriteLine((subject2 as ProtectionProxy).Authenticate("ac"));
        Console.WriteLine((subject2 as ProtectionProxy).Authenticate("abc"));
        Console.WriteLine(subject2.Request());
    }
    public void Run()
    {
        Console.WriteLine("Accessing site without protection proxy: ");
        RealInternet ri = new RealInternet();

        ri.connectTo("www.badsite.com");
        ri.connectTo("www.google.com");
        ri.connectTo("www.virussite.com");
        Console.WriteLine("Accessing site with protection proxy: ");
        ProtectionProxy pp = new ProtectionProxy();

        pp.connectTo("www.badsite.com");
        pp.connectTo("www.google.com");
        pp.connectTo("www.virussite.com");
    }
示例#6
0
        static void Main(string[] args)
        {
            IFile cacheProxy = new CacheProxy();

            cacheProxy.RequestFile("eerste.txt");
            cacheProxy.RequestFile("eerste.txt");
            cacheProxy.RequestFile("tweede.txt");
            cacheProxy.RequestFile("tweede.txt");
            cacheProxy.RequestFile("eerste.txt");

            ProtectionProxy protectionProxy = new ProtectionProxy();

            protectionProxy.RequestFile("eerste.txt");
            protectionProxy.RequestFile("eerste.txt");
            Console.ReadLine();
        }
示例#7
0
        static void Main()
        {
            Console.WriteLine("Proxy Pattern\n");
            Console.WriteLine("=============\n");

            ISubject subject = new Proxy();

            Console.WriteLine(subject.Request());
            Console.WriteLine(subject.Request());
            Console.WriteLine("=============\n");

            ProtectionProxy subjectProtected = new ProtectionProxy();

            Console.WriteLine(subjectProtected.Request());
            //Console.WriteLine((subjectProtected as ProtectionProxy).Authenticate("Secret"));
            //Console.WriteLine((subjectProtected as ProtectionProxy).Authenticate("Abracadabra"));
            Console.WriteLine(subjectProtected.Authenticate("Secret"));
            Console.WriteLine(subjectProtected.Authenticate("Abracadabra"));
            Console.WriteLine(subjectProtected.Request());

            // ISubject test = new Subject(); //The logic of the program is organized, that the Client can only declare proxies!!!
        }
        public void Proxy()
        {
            RealSubject realsubject = new RealSubject();

            Assert.AreEqual(realsubject.DoAction(), "do action");

            VirtualProxy subject = new VirtualProxy();

            Assert.AreEqual(subject.DoAction(), "Virtual Proxy: Call to do action");

            ProtectionProxy protectedsubject = new ProtectionProxy();

            Assert.AreEqual(protectedsubject.DoAction(), "Protection Proxy: Authenticate first");

            var result = protectedsubject.Authenticate("somepassword");

            Assert.AreEqual(result, "Protection proxy: No Access");
            Assert.AreEqual(protectedsubject.DoAction(), "Protection Proxy: Authenticate first");

            result = protectedsubject.Authenticate("mypassword");
            Assert.AreEqual(result, "Protection proxy: Authenticated");
            Assert.AreEqual(protectedsubject.DoAction(), "Protection Proxy: Call to do action");
        }
示例#9
0
        static void Main()
        {
            Console.WriteLine("Proxy Pattern\n");

            ISubject subject = new Proxy();
            Console.WriteLine(subject.Request());
            Console.WriteLine(subject.Request());

            subject = new ProtectionProxy();
            Console.WriteLine(subject.Request());
            Console.WriteLine((subject as ProtectionProxy).Authenticate("Secret"));
            Console.WriteLine((subject as ProtectionProxy).Authenticate("abracadabra"));
            Console.WriteLine(subject.Request());
            Console.ReadKey();
        }
示例#10
0
 static void Main(string[] args)
 {
     ProtectionProxy.Run();
 }