首页 > 其他分享 >建造者模式读取数据

建造者模式读取数据

时间:2024-07-30 14:54:45浏览次数:6  
标签:读取数据 建造 模式 MyFile result file Path new public

突然想起Asp.Net 启动项目的建造者写法非常优秀,所以让自己的代码看起来高级,美观,优雅。
我模拟一个场景使用它
直接上代码

 public class TestQuery
 {     
     public static void Main()
     {
         QueryableBuilder queryableBuilder = new QueryableBuilder();
         queryableBuilder.Queryable.LoadFile(() => 
         {
             var file = new MyFile()
             {
                 Path="E://测试.txt"
             };
             return file;
         });
     }
     public static async Task MainAsync()
     {
         QueryableBuilder queryableBuilder = new QueryableBuilder();
         string result = await queryableBuilder.Queryable.LoadFileAsync(() =>
         {
             var file = new MyFile()
             {
                 Path = "E://测试.txt"
             };
             return file;
         });
     }
}
 public class FileQueryable
 {
     public string LoadFile(Func<MyFile> func)
     {
         MyFile file=func.Invoke();
         StreamReader reader = new StreamReader(file.Path);
         var result=reader.ReadToEnd();           
         return result;
     }
     public async Task<string> LoadFileAsync(Func<MyFile> func)
     {
         MyFile file = func.Invoke();
         using (StreamReader reader = new StreamReader(file.Path))
         {
             var result = await reader.ReadToEndAsync();
             return result;
         }
     }
 }

 public class MyFile
 {
     public string Name { get; set; }
     public string Path { get; set; }
 }

标签:读取数据,建造,模式,MyFile,result,file,Path,new,public
From: https://www.cnblogs.com/guchen33/p/18332357

相关文章

  • PHP单例模式详解及应用
    本文由ChatMoney团队出品在PHP开发中,我们经常会遇到一些对象需要在整个应用程序中共享的情况。例如,数据库连接、缓存等资源。这时候,我们可以使用单例模式来确保这些资源只被创建一次,并且在程序的任何地方都可以访问到。什么是单例模式?单例模式(SingletonPattern)是一种设计模......
  • 线性回归和逻辑回归揭示数据的隐藏模式:理论与实践全解析
    机器学习之线性回归和逻辑回归1.简介1.1机器学习概述1.2监督学习的定义与重要性1.3线性回归和逻辑回归在监督学习中的作用1.3.1线性回归1.3.2逻辑回归2.线性回归(LinearRegression)2.1定义与目标2.1.1回归问题的定义2.1.2预测连续目标变量2.2模型概述2.2.1......
  • Java代理模式详解
    Java代理模式详解概念代理模式是一种设计模式,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。在Java中,代理模式主要分为静态代理和动态代理。静态代理静态......
  • 为列表中的不同 JSON 模式模型定义约束
    我有一些JSON,其结构类似于下图所示。threshold列表表示类型可以是"type":"upper_limit"或"type":"range"的对象。请注意,"target"值应该是整数或浮点数,具体取决于对象的类型。{"name":"blah","......
  • 【新手|非常简单】VMWare在NAT模式下为Centos7虚拟机配置静态IP
    检查VMWare的网络设置点击VMWare菜单栏中的“编辑”,点击“虚拟网络编辑器”检查一下NAT模式那一条,和我这里的设置是不是一样的(IP可能会不一样),我这里的设置是默认设置。如果不确定,可以点击“还原默认设置”。(你也可以尝试按着截图中的设置调)检查虚拟机的网络连接右键虚拟机,......
  • 框架升级之单例模式及统一异常处理
    单例模式单例模式(SingletonPattern)是一种常用的软件设计模式,它的主要目的是确保一个类仅有一个实例,并提供一个全局访问点来获取这个实例。单例模式在很多场景下都非常有用,比如配置文件读取、数据库连接、线程池等。使用单例模式改造数据库连接功能1.加载配置数据数据库配......
  • 关于GPIO输出模式下3种频率的解释
    配置GPIO输出模式时,有3种频率可以选择:2MHz、10MHz和50MHz,如下图:此处频率指的是I/O口驱动电路的响应频率而不是输出信号的频率。芯片的内部做了多个响应频率不同的输出驱动电路,可以根据需要选择合适的驱动电路。通过选取不同频率的输出驱动电路达到最佳的控制噪声和降低功耗的效......
  • Pulsar客户端消费模式揭秘:Go 语言实现 ZeroQueueConsumer
    前段时间在pulsar-client-go社区里看到这么一个issue:import"github.com/apache/pulsar-client-go/pulsar"client,err:=pulsar.NewClient(pulsar.ClientOptions{URL:"pulsar://localhost:6650",})iferr!=nil{log.Fatal(err)}consumer,er......
  • 【设计模式】代理模式详解
    1.简介代理模式是常用的Java设计模式,该模式的特点是代理类与委托类共享相同的接口。代理类主要负责预处理消息、过滤消息、将消息转发给委托类,并在事后处理消息等。代理类与委托类之间通常存在关联关系,一个代理类对象与一个委托类对象关联。代理类对象本身不真正实现服务,而......
  • 简单工厂模式
    1、背景我开一家披萨店,当客户需要某种披萨并且我这家店里也能做的时候,我就会为其提供所需要的披萨。这时候,我这家披萨店就可以看做工厂(Factory),而生产出来的披萨被成为产品(Product),披萨的名称则被称为参数,工厂可以根据参数的不同返回不同的产品,这就是简单工厂模式。工厂......