Tôi có một cây khác sẽ phát triển khi tôi thêm các mục bổ sung để duy trì và tôi đang tìm cách tốt nhất để viết nó để bảo trì Tôi bắt đầu với mã nàyTái cấu trúc cây If else else
private void ControlSelect()
{
if (PostingType == PostingTypes.Loads && !IsMultiPost)
{
singleLoadControl.Visible = true;
singleTruckControl.Visible = false;
multiTruckControl.Visible = false;
multiLoadControl.Visible = false;
}
else if (PostingType == PostingTypes.Trucks && !IsMultiPost)
{
singleLoadControl.Visible = false;
singleTruckControl.Visible = true;
multiTruckControl.Visible = false;
multiLoadControl.Visible = false;
}
else if (PostingType == PostingTypes.Loads && IsMultiPost)
{
singleLoadControl.Visible = false;
singleTruckControl.Visible = false;
multiTruckControl.Visible = false;
multiLoadControl.Visible = true;
}
else if (PostingType == PostingTypes.Trucks && IsMultiPost)
{
singleLoadControl.Visible = false;
singleTruckControl.Visible = false;
multiTruckControl.Visible = true;
multiLoadControl.Visible = false;
}
}
và tư duy tái Sacombank nó một cái gì đó như thế này
private void ControlSelect()
{
List<UserControl> controlList = GetControlList();
string visableControl = singleLoadControl.ID;
if (PostingType == PostingTypes.Loads && !IsMultiPost)
{
visableControl = singleLoadControl.ID;
}
else if (PostingType == PostingTypes.Trucks && !IsMultiPost)
{
visableControl = singleTruckControl.ID;
}
else if (PostingType == PostingTypes.Loads && IsMultiPost)
{
visableControl = multiLoadControl.ID;
}
else if (PostingType == PostingTypes.Trucks && IsMultiPost)
{
visableControl = multiTruckControl.ID;
}
foreach (UserControl userControl in controlList)
{
userControl.Visible = (userControl.ID == visableControl);
}
}
private List<UserControl> GetControlList()
{
List<UserControl> controlList = new List<UserControl>
{
singleLoadControl,
multiTruckControl,
singleTruckControl,
multiLoadControl
};
return controlList;
}
tôi đi biểu diễn hit nhưng tôi có thể quản lý tất cả các điều khiển của tôi là một nơi duy nhất
wa suy nghĩ khác của tôi s để làm cho mỗi khối chọn kiểm soát nó phương pháp riêng, một cái gì đó như thế này
private void SetSingleLoadControlAsSelected()
{
singleLoadControl.Visible = true;
singleTruckControl.Visible = false;
multiTruckControl.Visible = false;
multiLoadControl.Visible = false;
}
tôi không đi biểu diễn hit nhưng tôi duy trì các điều khiển trong nhiều vị trí
Tôi đang nghiêng về lựa chọn cho một chỉ vì tôi thích khía cạnh bảo trì của nó.
Tại sao bạn không chỉ đưa tất cả logic đó vào các lớp và thực hiện lựa chọn thông qua đa hình? –
Đây là một mùi mã. –