结构型/组合模式/ComposeService.cs
(完整代码) 1KBnamespace DesignModeConsole.结构型.组合模式;
/// <summary>
/// 组合模式
/// </summary>
internal class ComposeService : IService
{
public void Main()
{
// 需求:设计一个类来表达文件系统中的目录,能够方便实现以下功能
// 动态添加、删除某一个目录下的子目录或者文件
// 统计指定目录下的文件个数
// 统计指定目录下的文件总大小
//重构前
//var rootSystem = new FileSystemMode("D:\\Downloads", false);
//var file1 = new FileSystemMode("D:\\Downloads\\大话设计模式(带目录完整版).pdf", true);
//rootSystem.AddSubNode(file1);
//var count = rootSystem.CountNumOfFiles();
//var size = rootSystem.CountSizeOfFiles();
// 重构后
//var rootSystem = new DirectoryExtension("D:\\Downloads");
//var file1 = new FileExtension("D:\\Downloads\\大话设计模式(带目录完整版).pdf");
//rootSystem.AddSubNode(file1);
//var count = rootSystem.CountNumOfFiles();
//var size = rootSystem.CountSizeOfFile();
// 调用组合模式
var root = new Composite("root");
root.Add(new Leaf("leaf A"));
root.Add(new Leaf("leaf B"));
var comp = new Composite("composite x");
comp.Add(new Leaf("leaf xa"));
comp.Add(new Leaf("leaf xb"));
root.Add(comp);
var comp2 = new Composite("composite x");
comp2.Add(new Leaf("leaf xa"));
comp2.Add(new Leaf("leaf xb"));
root.Add(comp2);
root.Add(new Leaf("leaf c"));
var leaf = new Leaf("leaf d");
root.Add(leaf);
root.Remove(leaf);
root.Display(2);
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。