学习接口应用之C#接口实例

接口永远不能直接实例化。--msdn   
但可以说这样用
   
接口    实例   =   new    实现接口的类() ;  表示生成一个实现某某接口的类的对象。

 

 

针对接口编程能帮助达到面向对象开发和设计中"低耦合"的要求.  
      举个例子:某公司有一台特殊打印机,还可以使用一年,一年后可能换为另一种打印机,这两种打印机都特殊而贵.所以现在的程序希望换了打印机后也少量修改就可用.  
    方法:  
    1,定义一个打印机接口.  
    2,定义打印机类A,B,分别实现此接口.  
    3,定义一个工厂类,在类中可选择返回由A实现的接口,或者由B实现的接口.  
    4,在程序中使用打印机时,就可以使用工厂类来调用打印机,而不需要知道具体的是什么打印机.  
        如果打印机换了,只需要修改工厂类就行了.如果有一千个地方都调用过打印机,就不需要一个一个修改.修改一个地方就行了.接口充当一个隔离层的作用.  
   
    在面向对象的设计中,接口的作用非常重要,

//定义打印机接口 
  interface     Iprint...{ 
      bool     PrintData(string     data); 
    } 
  
  //定义打印机类A,实现接口 
  class     PrintA:Iprint...{ 
      public   virtual   bool     PrintData(string     data)...{ 
          //具体业务逻辑略 
        } 
    } 
  
    定义打印机类B,实现接口 
  class     PrintB:Iprint...{ 
      public   virtual   bool     PrintData(string     data)...{ 
          //具体业务逻辑略 
        } 
    } 
  
  //定义工厂类 
  class     PrintFactory...{ 
      public     Iprint     CreatePrint()...{ 
        //返回一个由打机类A,或B实现的接口,比如 
          return   new     PrintA(); 
        } 
    } 
  
  //通过工厂类,调用打印机 
  private   void     button1_Click(object     sender,EventArgs     e)...{ 
        PrintFactory     myFactory=new     PrintFactory(); 
        Iprint     myPrint=myFactory.CreatePrint(); 
        myPrint.PrintData("这样做很方便啊"); 
    }  

 

所以使用接口,最好创建工厂

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于C# ASP.NET Core框架的Web Server接口开发实例,示例中我们将创建一个简单的RESTful API接口,用于查询和添加学生信息。 首先,我们需要创建一个ASP.NET Core Web应用程序,并安装`Microsoft.AspNetCore.Mvc.NewtonsoftJson`和`Microsoft.EntityFrameworkCore.SqlServer`库,用于序列化和反序列化JSON数据,并连接SQL Server数据库。 接着,我们创建一个数据模型`Student`,用于表示学生信息: ```csharp public class Student { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } ``` 然后,我们创建一个数据上下文`StudentContext`,用于连接数据库并操作学生信息表: ```csharp public class StudentContext : DbContext { public StudentContext(DbContextOptions<StudentContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } ``` 接下来,我们创建一个控制器`StudentController`,用于处理HTTP请求并响应客户端: ```csharp [ApiController] [Route("[controller]")] public class StudentController : ControllerBase { private readonly StudentContext _context; public StudentController(StudentContext context) { _context = context; } [HttpGet] public async Task<ActionResult<IEnumerable<Student>>> GetStudents() { return await _context.Students.ToListAsync(); } [HttpPost] public async Task<ActionResult<Student>> AddStudent(Student student) { _context.Students.Add(student); await _context.SaveChangesAsync(); return CreatedAtAction(nameof(GetStudents), null); } } ``` 上述代码中,我们使用`[ApiController]`和`[Route]`特性来定义控制器,其中,`[ApiController]`特性表示该控制器是一个Web API,`[Route]`特性表示该控制器对应的路由规则。在`StudentController`控制器中,我们使用`StudentContext`类来连接数据库,然后定义了两个方法,一个用于查询所有学生信息,一个用于添加新学生信息。查询所有学生信息的方法使用`ToListAsync`函数从数据库中获取所有学生信息,并返回给客户端;添加新学生信息的方法使用`Add`函数将新学生信息添加到数据库中,然后使用`SaveChangesAsync`函数将更改保存到数据库中,并返回一个`CreatedAtAction`结果,表示添加成功。 最后,我们在`Startup`类的`ConfigureServices`方法中注册数据库连接和控制器: ```csharp public void ConfigureServices(IServiceCollection services) { services.AddDbContext<StudentContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddControllers() .AddNewtonsoftJson(); } ``` 这样,我们就完成了一个基于C# ASP.NET Core框架的Web Server接口开发实例,可以通过发送HTTP请求来查询和添加学生信息。当然,这只是一个非常简单的示例,实际开发中还需要考虑诸如请求参数验证、错误处理、身份验证等更多的细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值