zoukankan      html  css  js  c++  java
  • IOC DI

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.Practices.Unity;
    
    namespace ConsoleApplication1 {
        class Program {
            static UnityContainer container = new UnityContainer();
            static void init() {
                container.RegisterType<IPlayer, Player>();
                container.RegisterType<IMediaFile, MediaFile>();
            }
            static void Main(string[] args) {
    
                init();
    
                OperationMain op1 = container.Resolve<OperationMain>();
                op1.PlayMedia();
                OperationMain op3 = container.Resolve<OperationMain>();
                op3.PlayMedia();
    
                //普通方式
                OperationMain op2 = new OperationMain(new Player(), new MediaFile());
                op2.PlayMedia();
    
                Console.Read();
            }
        }
    
        /// <summary>
        /// 用户播放媒体文件
        /// </summary>
        public class OperationMain {
            IMediaFile _mtype;
            IPlayer _player;
    
            public OperationMain(IPlayer player, IMediaFile mtype) {
                _player = player;
                _mtype = mtype;
            }
    
            public void PlayMedia() {
                _player.Play(_mtype);
            }
        }
        /// <summary>
        /// 播放器
        /// </summary>
        public interface IPlayer {
            void Play(IMediaFile file);
        }
        /// <summary>
        /// 默认播放器
        /// </summary>
        public class Player : IPlayer {
            public void Play(IMediaFile file) {
                Console.WriteLine(file.FilePath+"1");
            }
        }
        /// <summary>
        /// 媒体文件
        /// </summary>
        public interface IMediaFile {
            string FilePath {
                get;
                set;
            }
        }
        /// <summary>
        /// 默认媒体文件
        /// </summary>
        public class MediaFile : IMediaFile {
            public string FilePath {
                get;
                set;
            }
        }
    }
    
  • 相关阅读:
    疫苗玻璃瓶行业,能发生国产替代吗
    马斯克是如何借力打力的?
    什么是分析立体主义
    这5家公司代表了高瓴资本眼中的科技产业未来
    玻尿酸之王华熙生物,为什么要做食品和饮料(下)
    ajax缺点
    babel转码器
    docker 缺陷
    MVVM中的vm双向监听和mvc的缺点
    mybatisPlus中的模糊查询问题
  • 原文地址:https://www.cnblogs.com/naliang/p/IOC.html
Copyright © 2011-2022 走看看