2

这是我在互联网上找到的 Java 设计问题之一。我试图根据我的面向对象知识来解决这个问题。

您有一个 Smartphone 类,并且将有 IPhone、AndroidPhone、WindowsMo​​bilePhone 等派生类,甚至可以是带有品牌的手机名称,您将如何设计这个 Classes 系统?根据需求提到的唯一细节是设计必须足够灵活以支持未来的产品,并且足够稳定以支持现有模型的变化。

根据我的理解,如果我必须为上述问题提供设计,那么我会将Phone类创建为抽象类。Smartphone类将是 Phone 类的子类,而iPhone、AndroidPhone、WindowsMo​​bilePhone是Smartphone类的四个子类。IPhone、AndroidPhone 和 WindowsMo​​bilePhone 类中会有属性 name brand,以支持带有品牌的手机名称。其他可能的属性是版本号、平台、型号、型号名称等

请让我知道上述设计是否正确。我需要您的意见来改进或更正我的解决方案。

4

1 回答 1

4

你的设计似乎很好。

我会建议:

1->创建一个父类“SmartPhone”

2->它可以有智能手机必须有型号,发布年份,品牌等属性。

3-> 父类还应包括智能手机必须具有呼叫、消息等特性作为抽象方法

3-> 对于常见的智能手机功能,您可以拥有指示智能手机常见功能的接口,如相机、Palyer 等

4->然后像AndroidPhone,iOSPhone这样的子类可以继承SmartPhone Parent Class,并且应该定义所有必须具有SmartPhone的属性和特性。

5->子类然后可以实现通用功能接口,如果这些功能由该电话支持。

6->将来如果创建一个新的SmartPhone Child Class,它也可以继承SmartPhone Parent Class,并通过定义的接口实现通用功能。

7->如果将来需要添加额外的功能,可以为此设计新的接口并由支持它的电话实现。

于 2013-08-13T09:47:10.750 回答