Java 设计方案:智能手机类和衍生类,如IPhone、AndroidPhone、WindowsMobilePhone,甚至可以是品牌手机名称

Java 设计方案:智能手机类和衍生类,如IPhone、AndroidPhone、WindowsMobilePhone,甚至可以是品牌手机名称,java,oop,design-patterns,Java,Oop,Design Patterns,这是我在互联网上发现的Java设计问题之一。我试图根据我的面向对象知识来解决这个问题 您有一个智能手机类,并将有诸如IPhone、AndroidPhone、WindowsMobilePhone等派生类 甚至可以是有品牌的电话,你会如何设计这个课程体系? 根据需求方面提到的唯一细节是,设计必须足够灵活,以支持未来产品,并足够稳定,以支持现有型号的更改。 根据我的理解,如果我必须为上述问题提供设计,那么我将创建Phone类作为抽象类。Smartphone类将是Phone类的子类,IPhone,And

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

您有一个智能手机类,并将有诸如IPhone、AndroidPhone、WindowsMobilePhone等派生类 甚至可以是有品牌的电话,你会如何设计这个课程体系? 根据需求方面提到的唯一细节是,设计必须足够灵活,以支持未来产品,并足够稳定,以支持现有型号的更改。

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


请务必让我知道上述设计是否正确。我需要您的输入来改进或纠正我的解决方案。

您的设计似乎很好

我建议:

1->创建父类“智能手机”

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

3->父类还应包括智能手机,必须具有呼叫、消息传递等抽象方法的功能

3->对于常见的智能手机功能,您可以拥有指示智能手机常见功能的界面,如摄像头、Palyer等

4->然后子类,如AndroidPhone、iOSPhone可以继承SmartPhone父类,并应定义智能手机的所有必须具有的属性和功能

5->子类然后可以实现公共功能接口,如果这些功能由该手机支持的话

6->将来如果创建一个新的SmartPhone子类,它也可以从SmartPhone父类继承,并通过定义的接口实现公共功能


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

您的设计似乎很好

我建议:

1->创建父类“智能手机”

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

3->父类还应包括智能手机,必须具有呼叫、消息传递等抽象方法的功能

3->对于常见的智能手机功能,您可以拥有指示智能手机常见功能的界面,如摄像头、Palyer等

4->然后子类,如AndroidPhone、iOSPhone可以继承SmartPhone父类,并应定义智能手机的所有必须具有的属性和功能

5->子类然后可以实现公共功能接口,如果这些功能由该手机支持的话

6->将来如果创建一个新的SmartPhone子类,它也可以从SmartPhone父类继承,并通过定义的接口实现公共功能


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

我不明白你想解决什么问题!IPhone似乎想成为一个界面,而不是一个类。:-)@Harry.Chen:我只是想根据用粗体标记的问题陈述以及我对设计模式和oop的了解来创建可能的类设计。我不明白你想要解决什么!IPhone似乎想成为一个界面,而不是一个类。:-)@Harry.Chen:我只是想根据用粗体标记的问题陈述和我对设计模式和oop的了解来创建可能的类设计。谢谢你的回答。如果我们试图从当前的角度扩展设计,我会根据IOSPhone、AndroidPhone和WindowsMobilePhone的品牌创建子类。比如说Iphone,我会创建一个子类作为Apple,然后创建Iphone4、Iphone5作为Apple的子类。是的,你可以做到!好主意我给了你一个相当简单的设计!!并包括苹果类中所有苹果iPhone的通用功能,如DonotDistribut、batteryStatus等。之后,我们可以创建Iphone4、Iphone5作为苹果的子类。如果他们有一些独特的功能,那么我们可以拥有独立的接口,如extendedIphone5,它将具有IPhone5支持的独特功能。我的方法正确吗?我只是为苹果等公司创建了单独的brandwise类,以处理这些品牌支持的各种特殊功能。如果我要像Iphone这样的单一类,我就无法维持!谢谢你的回答。如果我们试图从当前的角度扩展设计,我会根据IOSPhone、AndroidPhone和WindowsMobilePhone的品牌创建子类。比如说Iphone,我会创建一个子类作为Apple,然后创建Iphone4、Iphone5作为Apple的子类。是的,你可以做到!好主意我给了你一个相当简单的设计!!并包括苹果类中所有苹果iPhone的通用功能,如DonotDistribut、batteryStatus等。之后,我们可以创建Iphone4、Iphone5作为苹果的子类。如果他们有一些独特的功能,那么我们可以拥有独立的接口,如extendedIphone5,它将具有IPhone5支持的独特功能。我的方法正确吗?我只是为苹果等公司创建了单独的brandwise类,以处理这些品牌支持的各种特殊功能。如果我想要单身,我就不能维持