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 Circlecá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 flavourtham số bắt buộc . Bây giờ hãy nói rằng tôi thực sự cần sử dụng Circletrong ứ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.Cardboardmỗi lần.
Để "giải quyết" điều này, tôi tạo Circlelớp riêng của mình trong một không gian tên khác, chỉ lấy radiusvà centerlàm tham số, nhưng có một trình chuyển đổi ngầm định sang Circlelớ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 ?
                makePlayerchí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.