我刚刚在C#/ Silverlight中创建了我的第一个主要应用程序.最后,总行数超过12,000行代码.考虑到这是一个PHP / javascript应用程序的重写,我创建了2年,超过28,000行,我实际上为我的成就感到自豪.
在stackoverflow和其他网站上阅读了很多问题和答案之后,我遵循了许多海报的建议:我创建了一些课程,程序等,这些都是我一年前复制和粘贴的内容;我创建了逻辑图表以找出复杂的功能;确保没有疯狂的隐藏字符(使用标签代替空格);和其他一些事情;必要时发表评论(我有很多评论).
我的应用程序包含4个水平布局的图块,用户控件加载到每个图块中.您可以随时加载一到四个切片.如果你有一次切片加载,切片占用整个画板…如果你有2个加载,每个占用一半,3个三分之一,4个四分之一.
这些切片中的每一个代表(为了该示例)光控制.每个切片中都有3个滑块控件.现在,当我编写滑块的功能时,我在公共函数内部使用了一个switch / case语句,该语句将在指定的切片/滑块上运行命令.这使得一些重复的代码,但我看不到它,因为每个切片的命名不同.所以我会做slice1.my.commands(); slice2.my.commands();等等
我的问题是如何进一步清理我的代码? (可悲的是我无法发布任何代码).有没有办法从我的代码中取消这个重复?
解决方法:
你需要的是与你的朋友的战略模式的接口.例如:
public interface ISlice
{
public Slider Slide {get;set;}
}
public class Slice1 : ISlice
{
public Slider Slide { get; set; }
}
public static class SliceSlider
{
public static void DoSomethingCoolWithTheSliceSlide(ISlice slice)
{
slice.Slide.LookitMeIAmLearningDesignPatterns();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。