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);
                }
            }
        }
    

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

    参考地址

  • 相关阅读:
    codevs 3249 搭积木
    BSGS算法+逆元 POJ 2417 Discrete Logging
    POJ 1012 Joseph
    SPFA cojs 176. [USACO Feb07] 奶牛聚会
    素数筛 codevs 1675 大质数 2
    单片机软件proteus的汉化步骤
    直升机和固定翼实操期末考试
    二、万用表使用方法
    拉伸切除
    拔模
  • 原文地址:https://www.cnblogs.com/icxldd/p/15799596.html
Copyright © 2011-2022 走看看