Net基础知识学习

 
 
今日看到腾讯招聘net标准所以学习一波
 
 
OO:初级思想
封装:保证对象自身数据的完整性和安全性。
继承:建立类之间的关系,实现代码复用,方便系统扩展。
多态:相同的方法调用可实现不同的实现方式。
 
复习:
虚方法:实现方法重写。通过关键字Virtual来定义一个虚方法(父类中),用Override修饰来重写这个虚方法(子类中)。
语法:访问修饰符 virtual 返回值类型 方法名()
{
//方法体
}
用虚方法 实现多态:
1.子类重写父类的虚方法
两种方式:1.创建父类变量用子类对象实例化这个父类变量
          2.把父类类型作为参数,它的子类对象作为参数传入
2.运行时,根据实际创建的对象决定执行哪个方法
抽象方法: 是一个没有实现的方法,这些方法只能定义,通过在定义方法时加上关键字abstract可以声明一个抽象方法(父类中),用Override来重写这个抽象方法(重写)。
语法:访问修饰符 sbstract返回值类型 方法名();
注:抽象方法中没有方法体。
抽象方法的应用:定义抽象方法必须在非抽象的子类中去实现,抽象方法必须定义在抽象类中。
抽象类:用sbstract修饰的类都是抽象类。抽象类是抽象的概念,抽象类提供抽象方法要求继承他的子类去实现,通过这些抽象方法来约束子类的行为,有抽象的方法的类必然是抽象类,抽象类中不一定只能有抽象方法。
抽象类不能被实例化,也不能是密封和静态的
抽象方法和虚方法都是通过override重写父类的方法来实现多态。
注:重写父类的语法:方法名、参数列表,返回值一样
 
(方法重载是在一个类中完成,方法名相同,参数个数和参数类型不同,并且和返回值无关)
 
 
区别
抽象方法:
用abstract关键字修饰,
没有方法体,
必须被override重写,
只能在抽象类中写。
虚方法:
用virtaul关键字修饰有方法体
可以被override重写,
也可以不被override重写
 
IOC控制反转
一般结合DI使用
 
AOP 面向切面编程
AOP的意义在于能够让我们在不影响原有功能的前提下,为软件横向扩展功能,说穿了就是解耦。
c# 通过代理类 实现调用方法时打印日志:
    
class AOPDemo
    {
        // 实体类
        class Business
        {
            public void Test1()
            {
                Console.WriteLine("Test1");
            }
            public void Test2()
            {
                Console.WriteLine("Test2");
            }
        }
        class BusinessProxy:Business
        {
            public void Invoke(string methodName)
            {
                Console.WriteLine("before execute"); // 打印日志
                base.GetType().GetMethod(methodName).Invoke(this, null);
                Console.WriteLine("after execute");
            }
        }
        static void Main()
        {
            var business = new BusinessProxy();
            business.Invoke("Test1");  // 调用方法
            business.Invoke("Test2");
        }

 

静态代理需要给每个类添加一个代理类,当实体类过多时 静态代理就不适用了。
 
DDD:领域驱动设计
 
 
 
 

Net基础知识学习

 
 
今日看到腾讯招聘net标准所以学习一波
 
 
OO:初级思想
封装:保证对象自身数据的完整性和安全性。
继承:建立类之间的关系,实现代码复用,方便系统扩展。
多态:相同的方法调用可实现不同的实现方式。
 
复习:
虚方法:实现方法重写。通过关键字Virtual来定义一个虚方法(父类中),用Override修饰来重写这个虚方法(子类中)。
语法:访问修饰符 virtual 返回值类型 方法名()
{
//方法体
}
用虚方法 实现多态:
1.子类重写父类的虚方法
两种方式:1.创建父类变量用子类对象实例化这个父类变量
          2.把父类类型作为参数,它的子类对象作为参数传入
2.运行时,根据实际创建的对象决定执行哪个方法
抽象方法: 是一个没有实现的方法,这些方法只能定义,通过在定义方法时加上关键字abstract可以声明一个抽象方法(父类中),用Override来重写这个抽象方法(重写)。
语法:访问修饰符 sbstract返回值类型 方法名();
注:抽象方法中没有方法体。
抽象方法的应用:定义抽象方法必须在非抽象的子类中去实现,抽象方法必须定义在抽象类中。
抽象类:用sbstract修饰的类都是抽象类。抽象类是抽象的概念,抽象类提供抽象方法要求继承他的子类去实现,通过这些抽象方法来约束子类的行为,有抽象的方法的类必然是抽象类,抽象类中不一定只能有抽象方法。
抽象类不能被实例化,也不能是密封和静态的
抽象方法和虚方法都是通过override重写父类的方法来实现多态。
注:重写父类的语法:方法名、参数列表,返回值一样
 
(方法重载是在一个类中完成,方法名相同,参数个数和参数类型不同,并且和返回值无关)
 
 
区别
抽象方法:
用abstract关键字修饰,
没有方法体,
必须被override重写,
只能在抽象类中写。
虚方法:
用virtaul关键字修饰有方法体
可以被override重写,
也可以不被override重写
 
IOC控制反转
一般结合DI使用
 
AOP 面向切面编程
AOP的意义在于能够让我们在不影响原有功能的前提下,为软件横向扩展功能,说穿了就是解耦。
c# 通过代理类 实现调用方法时打印日志:
    
class AOPDemo
    {
        // 实体类
        class Business
        {
            public void Test1()
            {
                Console.WriteLine("Test1");
            }
            public void Test2()
            {
                Console.WriteLine("Test2");
            }
        }
        class BusinessProxy:Business
        {
            public void Invoke(string methodName)
            {
                Console.WriteLine("before execute"); // 打印日志
                base.GetType().GetMethod(methodName).Invoke(this, null);
                Console.WriteLine("after execute");
            }
        }
        static void Main()
        {
            var business = new BusinessProxy();
            business.Invoke("Test1");  // 调用方法
            business.Invoke("Test2");
        }

 

静态代理需要给每个类添加一个代理类,当实体类过多时 静态代理就不适用了。
 
DDD:领域驱动设计