c# - 评估我的代码设计 - 简单片段

标签 c# asp.net design-patterns

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        loadCountries();
        loadRegions();
        loadCities();
    }
}

private void loadCountries()
{
    Country country = new Country();
    ddlCountry.DataSource = country.GetDataTable();
    ddlCountry.DataTextField = "countryName";
    ddlCountry.DataValueField = "countryID";
    ddlCountry.DataBind();
}

private void loadRegions()
{
    Region region = new Region();
    ddlRegion.DataSource = region.GetRegionID(ddlCountry.SelectedValue);
    ddlRegion.DataTextField = "regionName";
    ddlRegion.DataValueField = "regionID";
    ddlRegion.DataBind();

}

private void loadCities()
{
    City city = new City();
    ddlCity.DataSource = city.GetCityID(ddlRegion.SelectedValue);
    ddlCity.DataTextField = "cityName";
    ddlCity.DataValueField = "cityID";
    ddlCity.DataBind();
}

protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
    loadRegions();
    if (ddlRegion.SelectedItem.Text == "No Province")
    {
        ddlRegion.Enabled = false;
        loadCities();
    }
    else
    {
        ddlRegion.Enabled = true;
        loadCities();
    }
}

代码为Default.aspx后端(表现层)

任何与 Country 相关的业务逻辑都放在 Country 类中,同样的规则适用于 Region 和 City。

这个片段设计可以吗?也就是说,是否符合表现层标准设计?我如何改进此代码段设计(如果可能)?

我是新手,我试着确保我慢慢地但肯定地接受它。

最佳答案

我认为命名约定需要一些改进。仔细考虑您的类和方法的名称。

例如(类名):

您有一个名为 Country 的类,表明它代表一个国家/地区。但是,我认为不会。看起来它负责创建国家数据表。

另一个例子(方法名):

您有一个名为 Region.GetRegionID() 的方法。看起来(但我不完全确定)好像这是基于 RegionId 获得的区域,所以我更喜欢 GetByRegionId。对类名的同样批评也适用。

关于c# - 评估我的代码设计 - 简单片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4581785/

相关文章:

javascript - 组合/继承/工厂 - 此案例的最佳模式

c# - 我应该在哪里存储公钥?

ios - 快速将图像上传到 asp.net web 服务

c# - 有没有关于在没有默认 ASP.Net 成员提供程序的情况下创建 MVC3 登录系统的教程?

javascript - 每当 UpdatePanel 刷新时运行 javascript

安卓没有生命周期?

c# - 终结器和 IDisposable

c# - 无法在 Windows 10 的 VS2017 中调试

c# - 在 DataGridView 中完成添加行

C# - 发布者订阅者解决这个问题吗?