面向对象如何实现主体+可选功能的设计?

现有不同类型的设备,根据类型的不同,具有不同的功能。

使用 typescript来实现该需求,应该如何组织 class 来应对可能增多的设备类型和功能

阅读 1.7k
1 个回答

interface IXxxable
interface IYyyable
interface IZzzable

interface IDevicePc extends IXxxable, IYyyable, IZzzable
interface IDevicePos extends IYyyable, IZzzable
interface IDeviceMobile extends IXxxable, IYyyable

class Item

class ItemPc extends Item implements IDevicePc
class ItemPos extends Item implements IDevicePos
class ItemMobile extends Item implements IDeviceMobile