Esempio n. 1
0
 public static void ThreadMethod(string name)
 {
     Singleton.GetInstance();
 }
Esempio n. 2
0
        //private static double money = 0.0d;
        static void Main(string[] args)
        {
            //Facade
            // Facade facade = new Facade();
            // facade.MethodA();
            //Builder
            // ConcreteBuilder1 builder1 = new ConcreteBuilder1();//建造者1
            // ConcreteBuilder2 builder2 = new ConcreteBuilder2();//建造者2
            // Director dir= new Director();//初始化指挥
            // dir.Construe(builder1);//传入建造者创建指定部件
            // var product1 = builder1.GetResult();
            // dir.Construe(builder2);
            // var product2 = builder2.GetResult();
            // product2.Show();
            // product1.Show();
            //Observer
            // ConcreteSubject subject = new ConcreteSubject();
            //  subject.Attach(new ConcreteObserver("X",subject));
            //  subject.Attach(new ConcreteObserver("Y",subject));
            //  ConcreteSubject subject2 = new ConcreteSubject();
            //  subject2.Attach(new ConcreteObserver("Z",subject2));
            //  subject.Update+=new SubjectHandler(new ConcreteObserver("X",subject).Update);
            //  subject.Update+=new SubjectHandler(new ConcreteObserver("Y",subject).Update);
            //  subject2.Update+=new SubjectHandler(new ConcreteObserver("Z",subject2).Update);
            //
            // subject.SubjectState = "is subject";
            // subject.Notify();
            //
            // subject2.SubjectState = "is subject2";
            // subject2.Notify();
            //AbstractFactory
            // const string dbName = "mysql";
            // User u = new User();
            // u.Name = "noName";
            // u.Id = 1;
            // AbstractFactory factory = new AbstractFactory();
            // var user = factory.CreateUser(dbName);
            // user.Insert(u);
            //State
            // Content c = new Content(new ConcreteStateA());
            // c.Request();
            // c.Request();
            // c.Request();
            // c.Request();
            //Adapter
            // Target target = new Adapter();
            // target.Request();
            //Memento
            //创建组织者,并赋值
            // Originator originator = new Originator();
            // originator.State = "On";
            // originator.Show();
            // //创建管理者,并存储备忘录
            // Caretaker  caretaker = new Caretaker();
            // caretaker.Memento = originator.CreateMemento();
            //  //修改组织者的值
            // originator.State = "Off";
            // originator.Show();
            // //还原为初始值
            // originator.SetMemento(caretaker.Memento);
            // originator.Show();
            //Composite
            // Composite site = new Composite("root");
            // site.Add(new Leaf("Leaf A"));
            // site.Add(new Leaf("Leaf B"));
            //
            // Composite comp = new Composite("Composite X");
            // comp.Add(new Leaf("Leaf XA"));
            // comp.Add(new Leaf("Leaf XB"));
            // site.Add(comp);
            //
            // Composite comp2 = new Composite("Composite XY");
            // comp2.Add(new Leaf("Leaf XYA"));
            // comp2.Add(new Leaf("Leaf XYB"));
            // comp.Add(comp2);
            //
            // site.Add(new Leaf("Leaf C"));
            //
            // Leaf leaf = new Leaf("Leaf D");
            // site.Add(leaf);
            //
            // site.Display(1);
            //Bridge
            // Abstraction abstraction = new RefinedAbstraction();
            // abstraction.SetImplementor(new ConcreteImplementorA());
            // abstraction.Operator();
            // abstraction.SetImplementor(new ConcreteImplementorB());
            // abstraction.Operator();
            //Command
            // Receiver re = new Receiver();
            // Command c = new ConcreteCommand(re);
            // Invoker i = new Invoker();
            // i.SetCommand(c);
            // i.ExecuteCommand();
            //ChainOfResponsibility
            // ConcreteHandler handle1 = new ConcreteHandler();
            // ConcreteHandlerB handle2 = new ConcreteHandlerB();
            // ConcreteHandlerC handle3 = new ConcreteHandlerC();
            // handle1.SetChainOfResponsilbility(handle2);
            // handle3.SetChainOfResponsilbility(handle3);
            // int[] resquests = {2, 5, 14, 22, 18, 3, 27, 20};
            // foreach (var i in resquests)
            // {
            //     handle1.HandlerRequest(i);
            // }
            //Mediator
            // ConcreteMediator m = new ConcreteMediator();
            // ConcreteColleague c1 = new ConcreteColleague(m);
            // ConcreteColleague2 c2   = new ConcreteColleague2(m);
            // m.Colleague1 = c1;
            // m.Colleague2 = c2;
            // c2.Send("吃过饭了,你那?");
            // c1.Send("没有那,一起?");
            //FlyWeight

            // int i = 22;
            // FlyWeightFactory f = new FlyWeightFactory();
            //
            // FlyWeight fx = f.GetFlyWeight("X");
            // fx.Operation(--i);
            //
            // FlyWeight fy = f.GetFlyWeight("Y");
            // fy.Operation(--i);
            //
            // FlyWeight fz = f.GetFlyWeight("Z");
            // fz.Operation(--i);
            //
            // FlyWeight uf = new UnSharedConcreteFlyWeight();
            // uf.Operation(--i);

            //Interpreter
            IContext context = new IContext();
            List <AbstractExpression> list = new List <AbstractExpression>();

            list.Add(new NonterminalExpression());
            list.Add(new TerminalExpression());
            list.Add(new TerminalExpression());

            foreach (var expression in list)
            {
                expression.Interpret(context);
            }

            // Visitor
            // ObjectStructure structure = new ObjectStructure();
            // structure.Attach(new ConcreteElementA());
            // structure.Attach(new ConcreteElementB());
            //
            // ConcreteVisitor v1 = new ConcreteVisitor();
            // ConcreteVisitor2 v2 = new ConcreteVisitor2();
            //
            // structure.Accept(v1);
            // structure.Accept(v2);

            //Singleton
            Singleton s1 = Singleton.GetInstance();
            Singleton s2 = Singleton.GetInstance();

            if (s1 == s2)
            {
                Console.WriteLine("两个对象是相同的实例");
            }
            Console.Read();
        }
Esempio n. 3
0
        public static void TestSingleton()
        {
            //Singleton.GetInstance();


            ParameterizedThreadStart threadStart1 = new ParameterizedThreadStart(delegate { Singleton.GetInstance(); });
            Thread thread1 = new Thread(threadStart1);

            thread1.Start();
        }