Merevoli

Untitled

Sep 14th, 2022
796
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.02 KB | None | 0 0
  1. # 3 loai man hinh: Viewsonic 123, HP 234, Samsung 345
  2. # 2 loai ban phim: Edra, Dareu
  3.  
  4. # low: Viewsonic 123 - Edra
  5. # medium: HP 234 - Dareu
  6. # high: Samsung 345 - Dareu
  7.  
  8. from abc import abstractmethod, ABC
  9.  
  10.  
  11. class AbstractScreen(ABC):
  12.     @abstractmethod
  13.     def getinfo():
  14.         pass
  15.    
  16. class ViewsonicScreen(AbstractScreen):
  17.     def getinfo():
  18.         pass
  19.  
  20. class HPScreen(AbstractScreen):
  21.     def getinfo():
  22.         pass
  23.  
  24. class SamsungScreen(AbstractScreen):
  25.     def getinfo():
  26.         pass
  27.    
  28.    
  29. class AbstractKeyboard(ABC):
  30.     @abstractmethod
  31.     def getinfo():
  32.         pass
  33.    
  34. class EdraKeyboard(AbstractScreen):
  35.     def getinfo():
  36.         pass
  37.  
  38. class DareuKeyboard(AbstractScreen):
  39.     def getinfo():
  40.         pass
  41.    
  42.  
  43. class Factory():
  44.     budget_map = {
  45.         'low': (ViewsonicScreen, EdraKeyboard),
  46.         'medium': (HPScreen, DareuKeyboard),
  47.         'high': (SamsungScreen, DareuKeyboard),
  48.     }
  49.    
  50.     def get_screen(self, budget):
  51.         return self.budget_map[budget][0]
  52.        
  53.     def get_keyboard(self, budget):
  54.         return self.budget_map[budget][1]
  55.        
  56. class AbstractFactory(ABC):
  57.     @abstractmethod
  58.     def get_screen(self, budget):
  59.         pass
  60.    
  61.     @abstractmethod
  62.     def get_keyboard(self, budget):
  63.         pass
  64.    
  65. class LowFactory(AbstractFactory):
  66.     def get_screen(self, budget):
  67.         return ViewsonicScreen()
  68.    
  69.     def get_keyboard(self, budget):
  70.         return EdraKeyboard()    
  71.        
  72.        
  73. def main():
  74.     # budget = input()
  75.    
  76.     # if budget == 'low':
  77.     #     screen = ViewsonicScreen()
  78.     #     keyboard = EdraKeyboard()
  79.     # elif budget == 'medium':
  80.     #     screen = HPScreen()
  81.     #     keyboard = DareuKeyboard()
  82.     # elif budget == 'high':
  83.     #     screen = SamsungScreen()
  84.     #     keyboard = DareuKeyboard()
  85.        
  86.     # ============
  87.    
  88.    
  89.     budget = input()
  90.    
  91.     factory = Factory()
  92.     screen = factory.get_screen(budget)
  93.     keyboard = factory.get_keyboard(budget)
Advertisement
Add Comment
Please, Sign In to add comment