zoukankan      html  css  js  c++  java
  • 面向对象(工厂模式,单例模式)

    工厂模式:

    给予指令生产一个对象  返回类型为父类类型,

    例子:

    计算器功能:

    public class JiSuan

        {

            private int a;

            public int A

            {

                get { return a; }

                set { a = value; }

            }

            private int b;

            public int B

            {

                get { return b; }

                set { b = value; }

            }

            public virtual int YunSuan()

            {

                return 0;

            }

        }

        //加法类

        public class Jia:JiSuan

        {

            public override int YunSuan()

            {

                return base.A + base.B;

            }

        }

        //减法类

        public class Jian : JiSuan

        {

            public override int YunSuan()

            {

                return base.A - base.B;

            }

        }

        //工厂类

        public class GongChang

        {

            public static JiSuan DuiXiang(string s)

            {

                switch(s)

                {

                    case "+":

                        return new Jia();

                        break;

                    case "-":

                        return new Jian();

                        break;

                    case "*":

                        return new Cheng();

                        break;

                    default:

                        return new Jia();

                        break;

     

    调用:

    class Program

        {

            static void Main(string[] args)

            {

                Console.WriteLine("请输入第一个数:");

                int a = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("请输入第二个数:");

                int b = Convert.ToInt32(Console.ReadLine());

           

                JiSuan c = GongChang.DuiXiang("-");

                c.A = a;

                c.B = b;

                Console.WriteLine("两个数的积为:"+c.YunSuan());

                Console.ReadLine();

              单例模式:

              控制一个类,只能实例化一个对象

    例:

        //单列模式

        //控制一个类只能实例化一个对象

        class Test

        {

            public string name;

        }

        //数据访问类

        class DBDA

        {

            public string host;

            public string database;

            //静态成员,用来存储该类的对象

            public static DBDA db = null;

            //让该类不能被实例化

            private DBDA()

            {

            }

            //提供一个造对象的方法,控制只能造一个对象

            public static DBDA DuiXiang()

            {

                if (db == null)

                {

                    db = new DBDA();

                }

                return db;

            }

        }

  • 相关阅读:
    MySQL之三---MySQL数据库的二进制安装、源码编译和基础入门操作
    yum仓库搭建、http源码编译和磁盘分区
    linux 磁盘管理三部曲——(3)mount挂载,/etc/fstab配置文件
    linux 磁盘管理三部曲——(2)管理分区,文件系统类型格式化
    linux 磁盘管理三部曲——(1)磁盘结构,认识分区
    ssh WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED(警告:远程主机标识已更改)
    httpd源码编译安装
    001 直接throw new RuntimeException("xxx")的异常错误信息是谁打印的?
    77 注解(二)——反射机制读取注解
    76 注解(一)——常用注解、自定义注解、注解的参数
  • 原文地址:https://www.cnblogs.com/kun-boke/p/5761426.html
Copyright © 2011-2022 走看看