现在的位置: 首页 > 综合 > 正文

BinaryWriter/BinaryReader+三层架构小结

2012年07月08日 ⁄ 综合 ⁄ 共 1863字 ⁄ 字号 评论关闭

马马虎虎看了看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 }

 

 

 

抱歉!评论已关闭.