[დიზაინის ნიმუში] გაკვეთილი 06: პროტოტიპის დიზაინის ნიმუში ჯავაში
შემდეგი ჩვენს Java სერიებში , მე აღფრთოვანებული ვარ გავაშუქო პროტოტიპის დიზაინის ნიმუში.
შემოქმედებითი დიზაინის ნიმუში არის შაბლონების ჯგუფი, რომელიც ძალიან სასარგებლოა ობიექტის შესაქმნელად. ობიექტის შექმნა ხშირად დამოკიდებულია სხვადასხვა კონტექსტზე, როგორიცაა გადაცემული პარამეტრების რაოდენობა და საბაზისო პირობები. როგორც შემოქმედებითი ჯგუფის ერთ-ერთი პოპულარული ნიმუში, პროტოტიპის ნიმუში ძალზე ეფექტურია რთული ობიექტების შესაქმნელად. მოდით გადავიდეთ ჯავაში პროტოტიპის ნიმუშის შემუშავებაში !
1. რა არის პროტოტიპის დიზაინის ნიმუში?
მოდით უფრო დეტალურად განვიხილოთ, თუ როგორ მუშაობს პროტოტიპის ნიმუში და რა ხდის მას სხვადასხვა ტიპის საბანკო ბარათების შექმნის მაგალითზე.
საზოგადოების წინსვლა იწვევს უნაღდო ტრანზაქციებს წინა პლანზე დიდ ქალაქებში. ამ დღეებში ადამიანების უმეტესობას აქვს საბანკო ანგარიში. თქვენ შეგიძლიათ მარტივად გამოიყენოთ თქვენი ბანკომატის ბარათი გადახდების განსახორციელებლად.
არსებობს რამდენიმე სახის ბანკომატის ბარათი – როგორიცაა MasterCard და Visa. თითოეული ბანკი სთავაზობს სხვადასხვა ტიპის ბარათებს კლიენტთა სხვადასხვა ჯგუფს – როგორიცაა VIP ბარათები და CashBack ბარათები. ფიზიკურად, ეს ბარათები მზადდება ერთი და იგივე მასალისგან, აქვთ იგივე ზომა და ფორმა და შეიცავს საერთო ინფორმაციას. მაგრამ თითოეულ ბარათს მაინც აქვს თავისი უნიკალური თვისებები, როგორიცაა ფერი და CVV ფონი, იცით?
დეველოპერებისთვის მცირე თე
მაა ის, თუ როგორ ეფექტურად შექმნათ ეს ბანკომატის ბარათები ზედმეტი ძალისხმევის გარეშე. ეძებთ გამოსავალს? ერთი მიდგომა, რომელიც შეგიძლიათ განიხილოთ, არის აღმაშენებლის ნიმუში. მაგრამ, როდესაც საქმე გვაქვს ობიექტთან, რომელსაც აქვს მრავალი პარამეტრი და რთული ლოგიკა, Builder ნიმუში შეიძლება არ იყოს საუკეთესო ვარიანტი. მირჩევნია კოპირება, ვიდრე ნულიდან დაწყება.
ასე რომ, მე გამოვიყენებ დეველოპერების ერთ-ერთ მთავარ უნარს: კოპირ-პასტირებას. პროტოტიპის ნიმუში ხელს შეუწყობს ობიექტის შექმნის ეფექტურობის მაქსიმიზაციას არსებული შაბლონიდან კლონირებით. ამის შემდეგ მე შემიძლია მისი შეცვლა კონკრეტული კონტექსტის მიხედვით.
ამ ეტაპზე, თქვენ გესმით, რატომ ვიყენებთ ამ შაბლონს. ახლა ქვეყნის ელფოსტის სია მოდით გავიგოთ, თუ როგორ უნდა შეიმუშაოთ და განვახორციელოთ ეს ნიმუში. პირველ რიგში, შეამოწმეთ პროტოტიპის ნიმუშის კლასის დიაგრამა – ის მოგვცემს დიდ სურათს.
2. პროტოტიპის დიზაინის ნიმუშის დიაგრამა
პროტოტიპის დიზაინის ნიმუშის დიაგრამა
ზემოთ მოცემულ დიაგრამაში ძირითადი კომპონენტებია სამი კლასი: Client, Prototype და SubPrototype.
– კლიენტის კლასი: წარმოადგენს კლასს, რომელიც იყენებს Prototype ობიექტს ქვეპროტოტიპების კლონირებისთვის.
– პროტოტიპის კლასი: ინტერფეისი ან აბსტრაქტული კლასი, რომელიც შეიცავს abstract clone() მეთოდს.
– SubPrototype Class: წარმოადგენს ქვეკლასებს, სადაც განვახორციელებთ clone() მეთოდს.
3. პროტოტიპის ნიმუშის დანერგვა
ჩვენ განვიხილეთ კლასის დიაგრამა. ახლა, მოდ Zašto biste trebali angažirati upravljane IT usluge za svoje poslovanje? ით ჩავუღრმავდეთ დეტალებს, თუ როგორ უნდა განხორციელდეს ეს ნიმუში სხვადასხვა ტიპის საბანკო ბარათების შექმნის მაგალითით.
დავიწყოთ BankCard კლასით და გამოვიყე. Sნოთ რამდენიმე კონკრეტული ტიპის ბარათების შესაქმნელად, როგორიცაა PlatinumCard და DiamondCard. ეს არის ო. Sრი განსხვავებული ტიპის კლიენტებისთვის ბანკში და ჩვენ მათ შევქმნით პრ. Sოტოტიპის ნიმუშის გამოყენებით.
პირველ რიგში ვქმნით BankCard
კლასს, რომელიც წარმოადგენს სხვადასხვა ტიპის საბა. Sნკო ბარათებს (Visa, MasterCard და ა.შ.). ეს კლასი შეიცავს საერთო ატრიბუტებს, როგო. Sრიცაა CardNumber, HolderName, CardType და ა.შ. მაგრამ, კონსტრუქტორის მეშვ. Sეობით BankCard ობიე afb directory ქტის შექმნა ნამდვილი უბედურებაა. თქვენ უნდა შეავსოთ ტონა ვე. Sლი, რაც ნიშნავს მეტ სამუშაოს როგორც დეველოპერისთვის, ასევე სისტემისთვის. ამი. Sს ნაცვლად, კლონირების მექანიზმს მივმართავ Cloneable ინტერფეისიდან.
კლასის დიაგრამას რომ ვუყურებ, როგორც ჩანს, მჭირდ. Sება CardClient კლასი. ეს კლასი გამოიყენებს Prototype შაბლონს ერთი და იმავე მო. Sმხმარებლისთვის რამდენიმე ტიპის ბარათის შესაქმნელად BankCard კლასის clone() მეთოდის გამოყენებით.