一个类的用户应该直接调用new吗?

时间:2018-03-05 11:39:12

标签: vb.net

或者他们应该做这样的事情

   Public Shared Function createOrders(ammount As String, base As String, quote As String, exchange As ExchangesClass, time As String, price As String, id As String, sellinginsteadofbuying As String) As OrdersAtExchange
        Dim a = New OrdersAtExchange
        a._ammount = Val(ammount)
        a._exchangeObject = exchange
        a._base = base
        a._quote = quote
        a._time = Date.Parse(time)
        a._price = Val(price)
        a._id = id
        a._market = CoinClass.MarketBaseQuoted(exchange.Exchange, base, quote)

        If a._market Is Nothing Then
            Dim b = 1
        End If
        a._isSellingInsteadOfBuying = sellinginsteadofbuying.ToLower.Trim = "sell"
        Return a
    End Function

基本上我看到的程序不使用new而只使用createObject函数。它是共享的。

我有点看到这是个好主意。我想知道在哪里。

在vb.net中使用new有点复杂,因为一个新函数可能需要调用另一个新函数。还有一些变量是“初始化的”。有些是在函数中设置的。

使用共享的创建对象似乎可以消除这个问题。

但这真是一个好主意吗?

我想我记得objective-c也做了这样的事情。

1 个答案:

答案 0 :(得分:1)

使用共享函数或由类用户创建新对象完全取决于类的目标。

使用共享函数创建实例有点类似于为类设置构造函数以将其设置为状态。

何时使用共享类的场景将是。
1.当你不想把控制权交给外界来创造你班级的对象时 2.当你总是希望类的对象在创建时具有特定的状态 3.在单例设计模式实现的情况下也可以使用共享函数。

同样,如果您希望用户完全控制类的对象创建并分配其状态,则可以允许使用new关键字创建对象。

总是一个好主意,让一个总是处于安全状态的班级,以及任何一个可以通过共享功能实现的时间点。

希望这有帮助!!!