Пример #1
0
        public void RegisterFactoryClass05Test()
        {
            ObjectFactory.Instance.RegisterFactoryClass(typeof(IFactorable), typeof(FactorableSub));

            IFactorable f = ObjectFactory.Instance.Construct <IFactorable>();

            Assert.IsInstanceOfType(f, typeof(FactorableSub));
        }
Пример #2
0
        public Pool(IFactorable <T> factory, int poolSize = 2)
        {
            this._factory = factory;

            for (int i = 0; i < poolSize; i++)
            {
                Create();
            }
        }
Пример #3
0
        public void RegisterFactoryClass06Test()
        {
            ObjectFactory.Instance.RegisterFactoryClass(typeof(IFactorable), typeof(FactorableSub));

            IFactorable f = ObjectFactory.Instance.Construct <IFactorable>(12);

            Assert.IsInstanceOfType(f, typeof(FactorableSub));
            Assert.AreEqual(12, f.Value);
        }
Пример #4
0
        public void RegisterFactoryInstance02Test()
        {
            ObjectFactory.Instance.RegisterFacoryInstance(typeof(IFactorable), new FactorableSub(17));

            IFactorable f = ObjectFactory.Instance.Construct <IFactorable>();
            IFactorable g = ObjectFactory.Instance.Construct <IFactorable>();

            Assert.AreEqual(17, f.Value);
            Assert.AreEqual(17, g.Value);
            Assert.AreEqual(f, g);
        }
Пример #5
0
        public void RegisterFactoryMethod01Test()
        {
            ObjectFactory.Instance.RegisterFactoryMethod(
                typeof(IFactorable),
                delegate(Type req, object[] args) { return(new FactorableSub(48)); }
                );

            IFactorable f = ObjectFactory.Instance.Construct <IFactorable>();
            IFactorable g = ObjectFactory.Instance.Construct <IFactorable>();

            Assert.AreEqual(48, f.Value);
            Assert.AreEqual(48, g.Value);
            Assert.AreNotEqual(f, g);
        }
Пример #6
0
 public Pool(IFactorable <T> factory) : this(factory, 2)
 {
 }