.NET基础-13-访问修饰符|序列化与反序列化

访问修饰符

public:公开的,公共的

private:私有的,只能在当前类的内部访问

protected:受保护的,只能在当前类的内部已经该类的子类中访问

internal:只能在当前项目中访问

protected internal:等于protected + internal

在同一个项目中,internal的权限比protected要高,但是如果出了项目因为protected修饰的成员可以被子类继承,所以从这方面看protected的权限反而要高些


序列化与反序列化
序列化:将对象转换成二进制
反序列化:将二进制转换为对象
作用:传输数据
应为网络传输的时候是使用高低电位来传输的0和1,所以一切的数据在网络中传输的时候都要进行序列化为二进制
 序列化:
 要将需要进行序列化的类标记为可以进行序列化操作
一个类一旦被标记成可以序列化,则该类不能被继承

      

例如有一个类Person,有两个属性,Name和Age

然后把这个类实例化之后的对象序列化为二进制并存入文件1.txt

之后从1.txt文件里面读取二进制,并反序列化为Person的对象

            Person p = new Person();
            p.Name = "张三";
            p.Age = 18;

            ////服务器端,把对象转换成二进制
            //FileStream fsWrite = new FileStream(@"C:\Users\Administrator\Desktop\test\1.txt", FileMode.OpenOrCreate, FileAccess.Write);
            ////序列化的对象,可以将对象p序列化为二进制
            //BinaryFormatter bf = new BinaryFormatter();
            ////把对象p序列化为二进制,并写入到文件1.txt中
            //bf.Serialize(fsWrite, p);
            //fsWrite.Close();
            //fsWrite.Dispose();


            //服务器端读取二进制
            FileStream fsRead = new FileStream(@"C:\Users\Administrator\Desktop\test\1.txt", FileMode.OpenOrCreate, FileAccess.Read);
            //反序列化的对象
            BinaryFormatter bf = new BinaryFormatter();
            //反序列化并强转为Person对象中
            Person per = (Person)bf.Deserialize(fsRead);


简单工厂模式

简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例

主要角色和职责为:

工厂类:简单工厂模式的核心,负责创建所有实例的内部逻辑,工厂类中创建产品类的方法可以被外界直接访问,创建所需的产品对象

抽象产品类:简单工厂模式所创建的所有产品对象的父类

具体产品类:是简单工厂类创建的具体的产品对象,全部继承自抽象产品类

优点:工厂类包括了相关的逻辑判断,根据外界传入的参数,来具体的创建和返回不同的具体产品的对象,通过使用工厂类,可以让外界摆脱直接创建具体产品对象的的局面,仅仅需要消费对象,而不用关心工厂类里面具体产品对象是如何创建和组织的,明确了各自的权利和职责

缺点:由于吧所有创建具体产品对象的路基全部集中到了工厂类中,所以所有的具体产品的对象都是已知的,如果需要添加新的具体产品类,就要修改工厂类.当具体产品类的数量不断增多的时候,对系统的维护和扩展,以及在创建具体产品类对象的时候的判断复杂程度会增加















猜你喜欢

转载自blog.csdn.net/m0_37532448/article/details/80321558