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;
            }
        }
    }
    
  • 相关阅读:
    学习进度条第一周
    构建之法阅读笔记01
    软件工程个人作业01
    《构建之法》阅读笔记
    Day6:闭包函数、无参装饰器
    Day5:函数参数
    Day4:字符编码与文件处理
    Day3:数据类型(布尔值、集合)
    Day2:数据类型(列表、元组、字典)
    Day1:初识Python
  • 原文地址:https://www.cnblogs.com/naliang/p/IOC.html
Copyright © 2011-2022 走看看