Hãy tưởng tượng một tình huống trong đó chúng ta đang sử dụng một thư viện cho phép bạn tạo Circle
các đối tượng, nơi bạn có thể chỉ định bán kính và tâm của vòng tròn để xác định nó. Tuy nhiên, vì một số lý do, nó cũng cần một flavour
tham số bắt buộc . Bây giờ hãy nói rằng tôi thực sự cần sử dụng Circle
trong ứng dụng của riêng mình, nhưng với mục đích của ứng dụng, tôi có thể đặt hương vị Flavours.Cardboard
mỗi lần.
Để "giải quyết" điều này, tôi tạo Circle
lớp riêng của mình trong một không gian tên khác, chỉ lấy radius
và center
làm tham số, nhưng có một trình chuyển đổi ngầm định sang Circle
lớp của thư viện bên ngoài chỉ tạo một Circle(this.radius, this.center, Flavours.Cardboard)
đối tượng. Vì vậy, ở mọi nơi tôi cần loại khác Circle
, tôi để chuyển đổi tự động diễn ra.
Hậu quả của việc tạo ra một lớp như vậy là gì? Có giải pháp nào tốt hơn không? Nó có khác biệt gì không nếu ứng dụng của tôi là một API được xây dựng trên đầu thư viện bên ngoài này, được các lập trình viên khác sử dụng?
MakeCircle
chức năng ?
makePlayer
chính nó chỉ chấp nhận các hợp đồng để đặt người chơi vào, nhưng giao cho một nhà xây dựng phức tạp hơn nhiều.