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

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

    参考地址

  • 相关阅读:
    Bitstream or PCM?
    centos7安装Redis-3.2.8
    【生肉】【不义联盟
    ES6中Map数据结构学习笔记
    机器学习基石入门
    2019/5/9 长难句
    文件遍历选取脚本
    [JS奇怪的世界]No.55 危險小叮嚀:陣列與for in
    OpenGL Panorama Player
    吴裕雄--天生自然MySQL学习笔记:MySQL 连接
  • 原文地址:https://www.cnblogs.com/icxldd/p/15799596.html
Copyright © 2011-2022 走看看