设计模式:单例和简单工厂

单例设计模式:只实例化一个类的对象!

 1 public class Person
 2     {
 3        //1:首先定义一个静态变量
 4        //2:将该类的构造函数私有化
 5        //3:定义一个静态方法,将该类对象赋给这个静态变量
 6        //4:在其他类中使用类.方法名来调用该对象
 7        public static Person p1;
 8        private Person()
 9        {
10        }
11        public static Person Get()
12        {
13            if (p1 == null)
14            {
15                p1 = new Person();
16            }
17            return p1;
18        }
19     }
20 class Program
21     {
22         static void Main(string[] args)
23         {
24             Person p1 = Person.Get();
25         }
26     }

设计模式之二:简单工厂

定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。

1:定义一个父类

 public abstract class Person
    {

       public abstract void Say();
       public Person()
       {
       }
    }

2:定义两个子类

 1     class Father:Person
 2     {
 3         public override void Say()
 4         {
 5             Console.WriteLine("我是爸爸");
 6         }
 7     }
 8  class Son:Person
 9     {
10         public override void Say()
11         {
12             Console.WriteLine("我是儿子");
13         }
14     }

3:定义简单工厂类

 1  public abstract class Tool
 2     {
 3        public static Person st(string type)
 4        {
 5           Person p1=null;
 6            switch (type)
 7            {
 8                case"爸爸":
 9                    p1=new Father();
10                    break;
11                case "儿子":
12                    p1 = new Son();
13                    break;
14
15
16
17            }
18            return p1;
19
20        }
21     }
时间: 2024-12-28 17:31:20

设计模式:单例和简单工厂的相关文章

单例、简单工厂模式。

单例模式: * *单例模式:一类只有一个实例. *特点:构造方法私有化,提供一个静态的方法获取实例. *懒汉式:使用时再创建对象. */public class Singleton2 { // private String name;// 修饰符 数据类型 属性名; private static Singleton2 singleton ; private Singleton2(){ } public static Singleton2 getInstance(){ if(singleton==

Javascript 设计模式 单例

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/30490955 一直很喜欢Js,,,今天写一个Js的单例模式实现以及用法. 1.单例模式的写法 单例模式写法相当简单: var singleTon = { m1: "memeber first ", m2: "memeber second ", f1: function () { console.log("fun1 "); } }

Javascript 设计模式 单例 http://blog.csdn.net/lmj623565791/article/details/30490955/

转载请标明出处:http://blog.csdn.NET/lmj623565791/article/details/30490955 一直很喜欢Js,,,今天写一个Js的单例模式实现以及用法. 1.单例模式的写法 单例模式写法相当简单: [javascript] view plain copy var singleTon = { m1: "memeber first ", m2: "memeber second ", f1: function () { consol

Java软件设计模式------单例设计模式

Java软件设计模式一共分为23种; 一般常用的有: 单例设计模式 装饰设计模式 工厂设计模式 单例设计模式(以后的用处:spring框架IOC,默认创建的对象都是单例的): 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案. 单例设计模式分为两种(饿汉式和懒汉式): ①饿汉式(常用): 特

Java设计模式(一) 简单工厂模式不简单

原创文章,转载请务必将下面这段话置于文章开头处. 本文转发自Jason's Blog,原文链接 http://www.jasongj.com/design_pattern/simple_factory 简单工厂模式使用案例 有一种抽象产品--汽车(Car),同时有多种具体的子类产品,如BenzCar,BMWCar,LandRoverCar.类图如下 作为司机,如果要开其中一种车,比如BenzCar,最直接的做法是直接创建BenzCar的实例,并执行其drive方法,如下 package com.

设计模式(一)——简单工厂模式

嵌入式linux 设计模式(一)--简单工厂模式 一.简单工厂模式简介 1.简单工厂模式 简单工厂模式(Factory Method Pattern)是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 简单工厂模式的UML类图 工厂角色(Creator):是简单工厂模式的核心,由它负责创建所有的类的内部逻辑.工厂类必须能够被

设计模式--单例

单例设计模式用来创建唯一的对象,有些时候我们只需要一个对象,如:线程池,缓存,对话框,注册表,日志对象,等等.这就需要单例设计模式来完成.不用多说,直接上代码.public class TestSingle { private static TestSingle single = null; private TestSingle(){} public static TestSingle getInstance(){ if(single==null){ single = new TestSingl

设计模式粗浅理解之一------简单工厂模式

设计模式粗浅理解之------简单工厂模式 什么是简单工厂模式 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 角色和职责 工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑.工厂类可以被外界直接调用,创建所需的产

大话设计模式读书笔记1——简单工厂模式

最近几日,重温了一下<大话设计模式>这本书,当时读的仓促,有很多没有注意的地方,现在仔细翻看起来,发现这值得细细品味的一本书!! 好东西就要记下来!!! 第一章笔记:从一个简单的计算器程序来看简单工厂模式. 变化的地方就要封装,用一个单独的类来做创造实例的过程这就是工厂. UML图: /// <summary> /// 运算类 /// </summary> public class Operation { public double Number1 { get; set