0
私はテキストベースのUIウィジェットライブラリに取り組んでおり、私のライブラリのユーザがアプリケーション全体のコンフィグレーションをカプセル化する能力があると判断しました。アプリケーションオブジェクト、そのよう:UIフレームワーク内のオブジェクトにグローバルコンフィグレーションデータを提供
class App:
def __init__(self, screen_size_tuple):
self.screen_size = screen_size_tuple
def get_screen_size(self):
return self.screen_size
class Widget:
def __init__(self, rows, cols, y, x, foo, bar, app):
self.rows = rows
self.original_dimensions = (rows, cols)
self.original_coords = (y, x)
#etc, etc
self.app = app
self.fullscreen = False
def self.toggle_fullscreen(self):
if self.fullscreen != True:
self.y = 0
self.x = 0
self.rows = self.app.screen_size[0] # y value from the application object
self.cols = self.app.screen_size[1] # x value from the application object
else:
self.y = self.original_coords[0]
self.x = self.original_coords[1]
self.rows = self.original_dimensions[0]
self.cols = self.original-dimensions[1]
私の質問は二つある:まず、私はこの戦術を採用する際に、どのように私は、作成時に各ウィジェットにアプリケーションクラスのインスタンスを渡すことを避けることができますか?ウィジェット作成をアプリケーションオブジェクト自体に委任するのがベストプラクティスですか?第二に、適切に採用された場合、このデザインパターンの名前はありますか?それはオブザーバーや依存症注入のようなものですが、ここではそのパターンが当てはまるとは確信していません。
事前に感謝=)
は同じくらい、ちょうどその戦術を採用することなく、いくつかの明白な理由がないことを確認したかったです。誰かが私に違ったことを言うまで、これを観察者モデルの緩やかな解釈と考えることにします。ご協力いただきありがとうございます。 <3ポニーパワー! <3 – Chazu