这是我在互联网上发现的Java设计问题之一。我试着根据我面向对象的知识来解决这个问题。
您有一个Smartphone类,并且将具有派生类,如IPhone、AndroidPhone、WindowsMobilePhone甚至可以是带有品牌的电话名,你会如何设计这个课程系统?根据需求,唯一提到的细节是,设计必须足够灵活,以支持未来的产品,并且足够稳定,以支持现有模型的更改
根据我的理解,如果我必须为上述问题提供设计,那么我将创建Phone类作为抽象类Smartphone类将是Phone类的子类,IPhone、AndroidPhone、WindowsMobilePhone是Smartphone类别的四个子类。IPhone、AndroidPhone和WindowsMobilePhone类中会有属性名称brand来支持带有brand的电话名称。其他可能的属性包括版本号、平台、型号、型号名称等
请告诉我上面的设计是否正确。我需要您的意见来改进或纠正我的解决方案。
您的设计看起来不错。
我建议:
1->创建父类"SmartPhone"
2->它可以有智能手机必须有像型号,发布年份,品牌这样的属性。
3->父类还应包括智能手机。必须具有呼叫、消息传递等功能,作为抽象方法
3->对于常见的智能手机功能,您可以拥有指示智能手机常见功能的接口,如相机、Palyer等
4->然后像AndroidPhone、iOSPhone这样的子类可以继承SmartPhone父类,并定义所有必须具有SmartPhone属性和功能的类。
5->子类然后可以实现通用功能接口,如果这些功能是由该Phone移植的。
6->将来,如果创建了一个新的SmartPhone子类,它也可以继承SmartPhone父类,并通过定义的接口实现通用功能。
7->如果将来需要添加额外的功能,可以为其设计新的接口,并由支持它的手机实现。