zoukankan      html  css  js  c++  java
  • 设计模式》适配器模式

    xxxVideo

        public sealed class PornAdaptee
        {
            public void Watch(Guid videoId)
            {
                Console.WriteLine($"查看视频{videoId.ToString()}");
            }
    
            public void Download(Guid videoId)
            {
                Console.WriteLine($"下载视频{videoId.ToString()}");
            }
        }
    
    
        public interface I91PornTarget
        {
            void Watch(Guid videoId);
    
            void Download(Guid videoId);
        }
    
        public class Rank91PornAdapter : I91PornTarget
        {
            protected PornAdaptee PornAdaptee { get; }
    
            public Rank91PornAdapter(PornAdaptee pornAdaptee)
            {
                PornAdaptee = pornAdaptee;
            }
    
            public void Watch(Guid videoId)
            {
                var d = new Random(2).Next(2);
                if (d < 2)
                {
                    Console.WriteLine("你是普通用户,看不了");
                }
                else
                {
                    PornAdaptee.Watch(videoId);
                }
            }
    
            public void Download(Guid videoId)
            {
                var d = new Random(2).Next(2);
                if (d < 2)
                {
                    Console.WriteLine("你是普通用户,下载不了");
                }
                else
                {
                    PornAdaptee.Watch(videoId);
                }
            }
        }
    
        public class Vip91PornAdapter : I91PornTarget
        {
            protected PornAdaptee PornAdaptee { get; }
    
            public Vip91PornAdapter(PornAdaptee pornAdaptee)
            {
                PornAdaptee = pornAdaptee;
            }
    
            public void Watch(Guid videoId)
            {
                {
                    PornAdaptee.Watch(videoId);
                }
            }
    
            public void Download(Guid videoId)
            {
                {
                    PornAdaptee.Watch(videoId);
                }
            }
        }
    

    总结 :为某一个类做适配(不适合用抽象类)

    参考地址

  • 相关阅读:
    1074. Reversing Linked List (25)
    1056. Mice and Rice (25)
    1051. Pop Sequence (25)
    1001. A+B Format (20)
    1048. 数字加密(20)
    1073. Scientific Notation (20)
    1061. Dating (20)
    1009. 说反话 (20)
    MyBatis学习总结(8)——Mybatis3.x与Spring4.x整合
    MyBatis学习总结(8)——Mybatis3.x与Spring4.x整合
  • 原文地址:https://www.cnblogs.com/icxldd/p/15799596.html
Copyright © 2011-2022 走看看