Naposledy aktivní 10 months ago

這段 Python 程式碼使用 策略模式(Strategy Pattern),定義一個 DataHandlerStrategy 介面,並實作 YAML (YamlHandler) 與 JSON (JsonHandler) 兩種不同的資料處理策略。它提供統一的 read_data 和 write_data 方法,讓程式可以根據不同的檔案格式 靈活讀取與寫入 YAML 或 JSON 檔案,適用於 配置管理、資料序列化或跨格式資料處理應用。

Revize de573ffd52a9bf0e997fab36ca3e3e16e9d06f30

data_handler.py Raw
1import yaml
2import json
3from abc import ABC, abstractmethod
4
5# 策略介面
6class DataHandlerStrategy(ABC):
7 @abstractmethod
8 def read_data(self, path):
9 pass
10
11 @abstractmethod
12 def write_data(self, path, data):
13 pass
14
15
16# YAML 策略
17class YamlHandler(DataHandlerStrategy):
18 def read_data(self, path):
19 with open(path, "r") as f:
20 return yaml.safe_load(f)
21
22 def write_data(self, path, data):
23 with open(path, "w") as f:
24 yaml.safe_dump(data, f)
25
26
27# JSON 策略
28class JsonHandler(DataHandlerStrategy):
29 def read_data(self, path):
30 with open(path, "r") as f:
31 return json.load(f)
32
33 def write_data(self, path, data):
34 with open(path, "w") as f:
35 json.dump(data, f, ensure_ascii=False, indent=4)
36