cdm*_*kay 11 .net c# java design-patterns builder
考虑一下Bloch的Builder模式的逐字副本(对C#的语法进行了更改):
public class NutritionFacts
{
public int ServingSize { get; private set; }
public int Servings { get; private set; }
public int Calories { get; private set; }
...
public class Builder
{
private int ServingSize { get; set; }
private int Servings { get; set; }
private int Calories { get; set; }
public Builder(int servingSize, int servings)
{
ServingSize = servingSize;
Servings = servings;
}
public Builder Calories(int calories)
{ Calories = calories; return this; }
public NutritionFacts Build()
{
return new NutritionFacts(this);
}
}
private NuitritionFacts(Builder builder)
{
ServingSize = builder.ServingSize;
Servings = builder.Servings;
Calories = builder.Calories;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您尝试运行此命令,C#编译器将抱怨它无权访问Builder的私有属性.但是,在Java中,您可以这样做.C#中有哪些规则阻止您访问嵌套类的私有属性?
(我意识到人们已经在这里提供了替代方案,这很好.我感兴趣的是为什么你不能不经过修改就使用Java模式).
| 归档时间: |
|
| 查看次数: |
2061 次 |
| 最近记录: |