返回值为类的函数,不知道是否为单例模式

using System;
using System.Collections.Generic;
using System.Text;

namespace ClassLibrary1.SecondBase
{
///
/// 计算器类
///
public class Calculator
{

    public static Calculator getCalculator() 
    {
        return new Calculator();
    }

    public int Add(int num1,int num2)
    {
        return (num1+num2)*2;
    }

    public double Add(double num1,double num2)
    {
        return (num1 + num2);
    }
    /*
    private Calculator myCal = new Calculator();
    int num1 = Convert.ToIn32(this.txtNum1.Text.Trim());
    int num2 = Convert.ToInt32(this.txtNum2.Text.Trim());
    this.txtResult.Text = myCal.add(num1,num2);,调用对象方法
    3面向对象三大特性
    了解面向对象三大特性
    封装
    隐藏内部实现细节,模块开发者只关系内部实现和接口要求。模块调用者之关系接口调用
    好处:安全保证(避免代码外漏)、快速应用(直接应用)、团队协作(多人同时工作)
    应用:类时程序的基本单元,也是封装的基本单元,但是类可以同样被模块封装
    继承
    复用现有代码
    好处:一处更新,处处更新;弊端:关联容易复杂
    应用objecg\Form
    多态
    让一个对象的接口可以根据不同的请求,做成不同的响应
    好处:程序扩展容易,维护方便
    应用:继承多态、接口多态(简单工厂、抽象工厂)
    5大OOP原则
    开发者必须掌握的OOP原则
    单一职责原则(对象职责明确原则)
    要求:一个对象只做好一件事情,必须专注,职责过多容易引起变化的原因就多,程序就不文帝
    (高内聚、低耦合的延申)
    开放封闭原则(核心原则)
    突然的明白 public static 类名 函数名()
    public static ImageUtilEngine getImageEngine()
    {
     return imageEngine();
    }
    这个是什么啊.....纠结了一个多星期的东西,忽然间看到了
    A safe way to get an instance of the Camera object
    public static Camera getCameraInstance()
    {
      Camera c = null;
        try{
      c = Camera.open();//attempt to get a Camera instance
        }
    catch(Exception e)
    {
      //Camera is not available(in use or does not exist)
    }
    return c;//returns null if camera is unavailable
    }
    原来ImageUtilEngine是一个类,然后看最后有return;
    原来是返回值为类的函数,就好比c语言中返回值为结构体的函数
     */
}

}

上一篇:链表反转,C++描述


下一篇:16、有n个正数,使得前面每个数依次后移m个位置,最后m个数变成最前面m个数