C#.Net OOP系列之接口设计及策略应用实战
C#.Net OOP系列之接口设计及策略应用实战
OOP编程之策略模式接口设计
接口设计, 策略应用, 对象多态性, 及其它OOP技术在这个演示实例展示。
如转载本文请注明出处!
来源:www.CSFramework.com, C/S结构框架学习网



如转载本文请注明出处!

来源:www.CSFramework.com, C/S结构框架学习网
//数据显示器接口
public interface IShowCustomer
{
IList GetCustomers(); //函数
void ShowCustomers(IList customers); //方法
void ShowCustomers(); //方法,重载
}
//数据显示器基类
public class ShowerBase : IShowCustomer
{
public virtual IList GetCustomers()
{
return CustomerTester.GetCustomers();
}
//当没有指定数据源,作为预设的显示方法
public void ShowCustomers()
{
IList customers = this.GetCustomers();
//调用模板方法
this.ShowCustomers(customers);
}
//虚方法,用于override
//实现具体的业务逻辑
public virtual void ShowCustomers(IList customers) { }
}
//用Listbox显示
public class ShowListBox : ShowerBase
{
private ListBox _container;
public ShowListBox(ListBox container)
{
_container = container;
}
//具体的业务逻辑
public override void ShowCustomers(IList customers) //方法,复写override overload
{
_container.Items.Clear();
foreach (object o in customers) _container.Items.Add(o);
}
}
//用表格显示
public class ShowGridView : ShowerBase
{
private DataGridView _gv;
public ShowGridView(DataGridView gv)
{
_gv = gv;
}
//具体的业务逻辑
public override void ShowCustomers(IList customers) //方法,复写override
{
_gv.DataSource = null;
_gv.DataSource = customers;
}
}
//用TreeView显示
public class ShowTreeView : ShowerBase
{
private TreeView _view;
public ShowTreeView(TreeView view)
{
_view = view;
}
//具体的业务逻辑
public override void ShowCustomers(IList customers) //方法,复写override
{
_view.Nodes.Clear();
TreeNode n;
foreach (Customer c in customers)
{
n = _view.Nodes.Add(c.CustomerName);
n.Nodes.Add(c.CustomerID);
n.Nodes.Add(c.CustomerAddress);
}
_view.ExpandAll();
}
}
// 来源:www.CSFramework.com, C/S结构框架学习网
public interface IShowCustomer
{
IList GetCustomers(); //函数
void ShowCustomers(IList customers); //方法
void ShowCustomers(); //方法,重载
}
//数据显示器基类
public class ShowerBase : IShowCustomer
{
public virtual IList GetCustomers()
{
return CustomerTester.GetCustomers();
}
//当没有指定数据源,作为预设的显示方法
public void ShowCustomers()
{
IList customers = this.GetCustomers();
//调用模板方法
this.ShowCustomers(customers);
}
//虚方法,用于override
//实现具体的业务逻辑
public virtual void ShowCustomers(IList customers) { }
}
//用Listbox显示
public class ShowListBox : ShowerBase
{
private ListBox _container;
public ShowListBox(ListBox container)
{
_container = container;
}
//具体的业务逻辑
public override void ShowCustomers(IList customers) //方法,复写override overload
{
_container.Items.Clear();
foreach (object o in customers) _container.Items.Add(o);
}
}
//用表格显示
public class ShowGridView : ShowerBase
{
private DataGridView _gv;
public ShowGridView(DataGridView gv)
{
_gv = gv;
}
//具体的业务逻辑
public override void ShowCustomers(IList customers) //方法,复写override
{
_gv.DataSource = null;
_gv.DataSource = customers;
}
}
//用TreeView显示
public class ShowTreeView : ShowerBase
{
private TreeView _view;
public ShowTreeView(TreeView view)
{
_view = view;
}
//具体的业务逻辑
public override void ShowCustomers(IList customers) //方法,复写override
{
_view.Nodes.Clear();
TreeNode n;
foreach (Customer c in customers)
{
n = _view.Nodes.Add(c.CustomerName);
n.Nodes.Add(c.CustomerID);
n.Nodes.Add(c.CustomerAddress);
}
_view.ExpandAll();
}
}
// 来源:www.CSFramework.com, C/S结构框架学习网



如转载本文请注明出处!

参考文档:
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C# .NET 入门概念与知识点总结|C/S开发框架
C#与.NET之间的关系-C/S开发框架
理解C#.NET泛型运作原理-C/S开发框架
C# ASP.NET WebApi服务器搭建详解 - Win服务承载(Windows Service Hosting宿主)
C# ASP.NET WebApi服务器搭建详解 - 自承载(Self Hosting)
C# ASP.NET WebApi服务器搭建详解 - IIS服务承载(IIS Hosting IIS宿主)
关于C/S框架网C#.NET快速开发框架现场培训
C#.Net 类的同名方法重载调用顺序
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
C#.NET各版本常用语法糖大全(C#3~C#10)|C/S开发框架
CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C# .NET 入门概念与知识点总结|C/S开发框架
C#与.NET之间的关系-C/S开发框架
理解C#.NET泛型运作原理-C/S开发框架
C# ASP.NET WebApi服务器搭建详解 - Win服务承载(Windows Service Hosting宿主)
C# ASP.NET WebApi服务器搭建详解 - 自承载(Self Hosting)
C# ASP.NET WebApi服务器搭建详解 - IIS服务承载(IIS Hosting IIS宿主)
关于C/S框架网C#.NET快速开发框架现场培训
C#.Net 类的同名方法重载调用顺序
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
C#.NET各版本常用语法糖大全(C#3~C#10)|C/S开发框架
CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
