c# - 自引用构造函数。这个图案有味道吗?

标签 c# design-patterns

我正在为一位高级 开发人员进行代码审查,他们实现了一种非常奇怪的设计模式。

public class A : ABase
{
    private ABase aBase { get; }
    public A(A a)
    {
        aBase = a;
    }
    public A () {}
    //loads of stuff depending on aBase being initialised
}

全程使用A()构造函数,然后将构造好的对象像这样传回A(A)构造函数

var a = new A();
//a is not usable at this point.
var b = new A(a);
//b is usable.

我的问题:这是一个合法的设计模式吗?如果不是,初级开发人员如何接近 高级 开发人员对代码库做一些疯狂的事情。

最佳答案

Is this a legitimate design pattern?

是的。这看起来很像 Decorator模式,您可以在其中使用组合向您的类添加行为,而不会用太多的子类爆炸您的 API。该模式是否适合您的上下文取决于您未向我们展示的其余代码。

语句 var b = new A(a); 据说用额外的行为装饰了 A 的现有实例。将其与 Strategy 进行比较为每个行为排列/组合创建新子类的模式。

And if not, how does a junior developer approach a senior developer doing something crazy to the code base

这个问题超出了 StackOverflow 的范围。但如果我必须回答这个问题,正确的方法是尽可能多地阅读并以开放的心态接近你的前辈。

关于c# - 自引用构造函数。这个图案有味道吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39039038/

相关文章:

c# - Unity3d游戏收不到推送通知

c# - 用封闭的 HREFS 替换电子邮件和 HREFS

c# - UWP Hub 需要垂直滚动

c# - 客户端的互联网速度慢怎么会成为 asp.net 中服务器超时异常的原因?

android - 为不同 Activity 处理相同布局的最佳方法

design-patterns - ServiceBus 如何工作?

c# - Nhibernate 中的 MySqlException

android - Android UI 开发是否适合特定的设计模式?

java - 工厂模式 - 字符串还是枚举?

design-patterns - 软件中使用的设计模式有哪些现实生活中的例子