2011-04-26 57 views
0

我被分配创建一个计算器,它可以使用外部类来计算总和,产品,差异和商。Visual Basic外部类计算器

不幸的是,我的老师并不是最好的,我是VB新手,我知道如何在VB.net中创建一个计算器,但是当谈到外部类时,我真的不知道他是什么谈论。

有人可以澄清他要求什么吗?

+0

呃,你需要澄清他们的意思,而不是在这里问我们。这听起来像是试图教你一些特定的设计模式。他们都不会很适合创建计算器,所以这显然不是分配的重点。什么是“外部类”?这个短语没有明确的含义。 – 2011-04-26 14:34:25

回答

0

没有更明确的指示很难猜测,但由于这似乎来自上面,我猜想他预计类似于command pattern的东西。

本质instad具有doAdd(int, int)doSubtract(int, int)等一类Calculator的,你能接受Command(也许一个名为不同的操作枚举),并通过计算过,以实现一个共同的接口的东西。

interface CalcCommand 
{ 
    double calc(double a, double b); 
} 

然后你Calculator.AcceptCommand()功能(或者无论你怎么称呼它),可以创建并调用实现这个接口,并呼吁他们都以同样的方式对象。这种模式的真正目的是分离不同的代码位,使它们更易于单独维护,而不必经常改变类别本身。

这是一个非常简单的例子,但我希望它提供了一个合适的起点。您也可能希望查找strategy pattern,这在目的和实现方面类似。

1

我认为你将不得不为不同操作的类,一个很简单的例子如下:

public class Sum 
{ 
    private int num1; 
    private int num2; 

    public Sum(int x, int y) 
    { 
    num1 = x; 
    num2 = y; 
    } 
    public int Calculate() 
    { 
     return num1 + num2; 
    } 
} 

然后使用这个类从计算器类来执行求和(创建这个类的新实例,调用计算方法)。

+0

这是有趣的看VB代码! ;) – 2011-04-26 19:17:34

+0

* .NET虽然:) – 2011-04-26 19:22:06

0

我同意ADas。你也可以使用共享的方法的类,这样你就不必实例化一个实例,以便使用它们:

Public Class Operations 

    Public Shared Function Sum(x As Integer, y As Integer) As Integer 
     Return x + y 
    End Function 

    Public Shared Function Difference(x As Integer, y As Integer) As Integer 
     Return x - y 
    End Function 

End Class 

然后,您可以调用这个类是这样的:

Dim result As Integer = Operations.Sum(5, 5) 

而且如果对“外部类”的需求意味着在一个单独的文件中,则将新的类库项目添加到您的解决方案并将类放在那里。然后从您的计算器应用程序中引用该类库,以便您可以使用它。