35mm接口及25mm接口; USB Type-C接口;lighting接口。分别用类模式和对象模式实现耳机接口的转换写出代码
类模式实现:
class AudioJackAdapter:
def __init__(self, audio_jack):
self.audio_jack = audio_jack
def play_sound(self):
if isinstance(self.audio_jack, ThreePointFiveMMJack):
self.audio_jack.play_sound()
elif isinstance(self.audio_jack, TwoPointFiveMMJack):
self.audio_jack.play_sound()
elif isinstance(self.audio_jack, USBTypeCJack):
self.audio_jack.play_sound()
elif isinstance(self.audio_jack, LightningJack):
self.audio_jack.play_sound()
class ThreePointFiveMMJack:
def play_sound(self):
print("Playing sound through 3.5mm audio jack.")
class TwoPointFiveMMJack:
def play_sound(self):
print("Playing sound through 2.5mm audio jack.")
class USBTypeCJack:
def play_sound(self):
print("Playing sound through USB Type-C audio jack.")
class LightningJack:
def play_sound(self):
print("Playing sound through Lightning audio jack.")
# Usage example
three_point_five_mm_jack = ThreePointFiveMMJack()
two_point_five_mm_jack = TwoPointFiveMMJack()
usb_type_c_jack = USBTypeCJack()
lightning_jack = LightningJack()
adapter1 = AudioJackAdapter(three_point_five_mm_jack)
adapter1.play_sound() # output: Playing sound through 3.5mm audio jack.
adapter2 = AudioJackAdapter(two_point_five_mm_jack)
adapter2.play_sound() # output: Playing sound through 2.5mm audio jack.
adapter3 = AudioJackAdapter(usb_type_c_jack)
adapter3.play_sound() # output: Playing sound through USB Type-C audio jack.
adapter4 = AudioJackAdapter(lightning_jack)
adapter4.play_sound() # output: Playing sound through Lightning audio jack.
对象模式实现:
class AudioJackAdapter:
def __init__(self):
self.audio_jack = None
def set_audio_jack(self, audio_jack):
self.audio_jack = audio_jack
def play_sound(self):
if isinstance(self.audio_jack, ThreePointFiveMMJack):
self.audio_jack.play_sound()
elif isinstance(self.audio_jack, TwoPointFiveMMJack):
self.audio_jack.play_sound()
elif isinstance(self.audio_jack, USBTypeCJack):
self.audio_jack.play_sound()
elif isinstance(self.audio_jack, LightningJack):
self.audio_jack.play_sound()
class ThreePointFiveMMJack:
def play_sound(self):
print("Playing sound through 3.5mm audio jack.")
class TwoPointFiveMMJack:
def play_sound(self):
print("Playing sound through 2.5mm audio jack.")
class USBTypeCJack:
def play_sound(self):
print("Playing sound through USB Type-C audio jack.")
class LightningJack:
def play_sound(self):
print("Playing sound through Lightning audio jack.")
# Usage example
adapter = AudioJackAdapter()
adapter.set_audio_jack(ThreePointFiveMMJack())
adapter.play_sound() # output: Playing sound through 3.5mm audio jack.
adapter.set_audio_jack(TwoPointFiveMMJack())
adapter.play_sound() # output: Playing sound through 2.5mm audio jack.
adapter.set_audio_jack(USBTypeCJack())
adapter.play_sound() # output: Playing sound through USB Type-C audio jack.
adapter.set_audio_jack(LightningJack())
adapter.play_sound() # output: Playing sound through Lightning audio jack.
``
原文地址: https://www.cveoy.top/t/topic/hjk2 著作权归作者所有。请勿转载和采集!