• BinaryWriter/BinaryReader+三层架构小结


    马马虎虎看了看BinaryWriter/BinaryReader,试了一下,知道有这么回事,有个印象,以后遇到在研究啦,玩了这么几天三层架构,顺便做个总结:

     三层体系结构的概念

     用户界面表示层(USL/UI) 业务逻辑层(BLL) 数据访问层(DAL)

    各层的作用

      1:数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的 形式)的操作层,,具体为业务逻辑层或表示层提供数据服务

      2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作, 对数据业务逻辑处理,  一句话总结就是制定游戏规则!

      3.层:接受参数,面向用户。

    为什么要分三层
    我们用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。这说明将应用程序划分层次,会带来其执行速度上的一些损失。但从团队开发效率角度上来讲却可以感受到大不相同的效果。

    三层结构的具体优点如下:
        1:提高程序的可维护性;三层架构层次分明,一旦运行出现问题,可以快速的判断是哪一层的问题,利于维护。
         2:可以合理的开发:因为三层之间除了调用没有其他关联,只需要先把三层之间的接口定义好,则程序员可以并行开发,提高了开发的速度。
        3:提高了系统的安全性:每层都有安全设置,即使表示层被攻破,下一层的安全还有保障。
        4:提高了系统的扩展性:三层结构最大的好处是在扩展应用系统时,改动的部分不会影响到大局,比如要给这个系统增加oracle数据库的功能,只需要改动数据层就可以了,其他层保持不变。

      三层结构的缺点如下:

    “三层结构”开发模式的一个非常明显的缺点就是其执行速度不够快。当然这个“执行速度”是相对于非分层的应用程序来说的。 “三层结构”开发模式,不适用于对执行速度要求过于苛刻的系统,例如:在线订票,在线炒股等等……它比较擅长于商业规则容易变化的系统。

    总之:无论哪一种开发模式或方法,都是有利有弊的。

    Binary Code 
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Text;
     4 using System.IO;
     5 
     6 namespace BinaryTest
     7 {
     8     class Program
     9     {
    10         static void Main(string[] args)
    11         {
    12             FileStream fs= Write(@"D:\1.txt", "你好");
    13             string s = Read(@"D:\1.txt");
    14             Console.WriteLine(s);
    15             Console.ReadKey();
    16         }
    17         //写入文件
    18         public static  FileStream Write(string path,string addcontent)
    19         {
    20             using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate))
    21             {
    22                 fs.Seek(0, SeekOrigin.End);
    23                 //写入二进制流
    24                 BinaryWriter bw = new BinaryWriter(fs);
    25                 bw.Write(addcontent);       
    26                 fs.Seek(0,SeekOrigin.Begin);//移到文件头
    27                 return fs;
    28             }
    29         }
    30         //读文件
    31         public static string Read(string path)
    32         { 
    33             using (FileStream fs = new FileStream(path, FileMode.Open))
    34             {
    35                 BinaryReader binReader = new BinaryReader(fs);
    36                StringBuilder sb = new StringBuilder();
    37                byte[] testArray = new byte[fs.Length];
    38                int count = binReader.Read(testArray,0,(int)fs.Length);
    39                if (count != 0)
    40                {
    41                    // Reset the position in the stream to zero.
    42                    binReader.BaseStream.Seek(0, SeekOrigin.Begin);
    43                    sb.AppendLine(binReader.ReadInt32().ToString());
    44                }
    45                return sb.ToString();
    46             }
    47 
    48         }
    49     }
    50 }
    

     

  • 相关阅读:
    算法与数据结构(二):排序
    冒泡排序
    责任型模式一:Observer(观察者)模式
    接口型模式(二)Bridge(桥接)模式
    内部排序:归并排序
    mean函数
    cross validation
    内存不足导致的java.lang.OutOfMemoryError: java heap space引出java工程启动参数设置
    angularjs 的hello world
    Nexus私库上传jar文件
  • 原文地址:https://www.cnblogs.com/rohelm/p/2432451.html
Copyright © 2020-2023  润新知