Pola desain dengan Tutorial— Kekuatan OOP (bagian 3)
Pola adaptor dalam pola adaptor Swift Swift
Pola desain dengan Tutorial— Kekuatan OOP (bagian 3)
Prasyarat — Seri tutorial ini memerlukan keahlian tingkat menengah dalam pemrograman berorientasi objek. Anda harus memiliki pengetahuan dasar tentang kelas, objek, konstruktor, warisan, nilai dan tipe referensi. Seorang Intermediate akan memperoleh ilmu dan para ahli akan mempertajam ilmunya dengan membaca seri ini dari awal sampai akhir. Prasyarat—Seri tutorial ini memerlukan keahlian menengah dalam pemrograman berorientasi objek. Anda harus memiliki pemahaman dasar tentang kelas, objek, konstruktor, warisan, nilai, dan tipe referensi. Pengguna tingkat menengah akan memperoleh pengetahuan, sedangkan para ahli akan meningkatkan pengetahuannya dengan membaca seri ini dari depan ke belakang.
Apa itu Adaptor?
Apa itu adaptor?
Adaptor adalah perangkat fisik yang memungkinkan satu perangkat keras atau antarmuka elektronik disesuaikan dengan perangkat keras atau antarmuka elektronik lain tanpa kehilangan fungsionalitas. Adaptor adalah perangkat fisik yang memungkinkan satu perangkat keras atau antarmuka elektronik disesuaikan dengan perangkat keras atau antarmuka elektronik lain tanpa kehilangan fungsionalitas.
Adaptor digunakan ketika Anda memiliki satu bentuk masukan dan Anda ingin mengakses sesuatu yang tidak dapat menerima bentuk masukan Anda. Adaptor digunakan ketika Anda memiliki bentuk masukan dan ingin mengakses sesuatu yang tidak dapat mengambil bentuk masukan Anda.

Sekarang saatnya memahami pola adaptor dengan menjawab pertanyaan sederhana di bawah ini. Sekarang, pahami pola adaptor dengan menjawab pertanyaan sederhana di bawah ini.
-
Apa pola Adaptor dalam pemrograman Berorientasi Objek? Apa pola adaptor dalam pemrograman berorientasi objek?
-
Masalah apa yang dipecahkannya? Masalah apa yang dipecahkannya?
-
Bagaimana cara menggunakannya dalam pemrograman? Bagaimana kita menggunakannya dalam pemrograman?
Apa pola Adaptor dalam pemrograman Berorientasi Objek?
Apa pola adaptor dalam pemrograman berorientasi objek?
Dalam pola adaptor, kita mendefinisikan satu kelas yang mengambil tipe yang ada sebagai input dan memberi kita tipe yang diperlukan atau fungsionalitas/properti yang diperlukan untuk mengakses. Dalam pola Adaptor, kita mendefinisikan kelas yang menerima tipe yang ada sebagai input dan memberi kita tipe yang diperlukan atau fungsionalitas/properti yang diperlukan untuk mengakses.
Masalah apa yang dipecahkannya?
Masalah apa yang dipecahkannya?
Ini membantu untuk mengubah tipe data yang ada ke bentuk data lain. Ini membantu dalam mengubah jenis data yang ada menjadi bentuk data lain.
Ini sangat berguna ketika kita menggunakan kode kerangka kerja atau perpustakaan pihak ketiga dan hanya menerima tipe terbatas. Ini sangat berguna ketika kita menggunakan kode dari kerangka atau pustaka pihak ketiga dan hanya menerima tipe terbatas.
Bagaimana cara menggunakannya dalam pemrograman?
Bagaimana kita menggunakannya dalam pemrograman?
Mari kita pahami ini dengan contoh di bawah ini. Mari kita pahami melalui contoh berikut.
Kami memiliki kelas seperti Point, LineSegment dan DrawingPad . Kami memiliki kelas Point, LineSegment dan DrawingPad.
Ingat masa lalu Komputer Grafik menggunakan bahasa C? Ingat hari-hari ketika kita menggunakan bahasa C untuk membuat grafik komputer? Saat itu hanya untuk menggambar garis di layar, kita harus menghitung semua titik garis antara dua titik yang diberikan. Untuk menghitung titik-titik garis, ada beberapa algoritma dasar yang tersedia seperti algoritma menggambar garis sederhana, Algoritma DDA, algoritma garis Bresenham, dll. Untuk menggambar garis di layar, kita perlu menghitung semua titik di antara dua titik pada garis tersebut. Untuk menghitung titik-titik suatu garis lurus, ada banyak algoritma dasar yang dapat digunakan, seperti algoritma menggambar garis lurus sederhana, algoritma DDA, algoritma garis lurus Bresenham, dll. Kami akan menjaga kode contoh kami tetap bersih dan mudah dipahami untuk pola adaptor tanpa menulis algoritma rumit ini di sini. Untuk pola adaptor, kami akan menjaga kode contoh tetap sederhana dan mudah dipahami tanpa menulis algoritma rumit seperti itu di sini.

// Hitendra Solanki
// Adapter design pattern Playground example
import Foundation
class Point {
var x: Int
var y: Int
init(x: Int, y: Int) {
self.x = x
self.y = y
}
}
class LineSegment {
var startPoint: Point
var endPoint: Point
init(startPoint: Point, endPoint: Point) {
self.startPoint = startPoint
self.endPoint = endPoint
}
}
//Mark:- DrawingPad
// This is just to make example more interesting
// We are just printing the point on Console to make it simple
class DrawingPad {
//Draw Single point, main drawing method
func draw(point: Point) {
print(".")
}
//Draw multiple points
func draw(points: [Point]) {
points.forEach { (point) in
self.draw(point: point)
}
}
}
func main(){
let drawingPad = DrawingPad()
let point1 = Point(x: 10, y: 10)
drawingPad.draw(point: point1)
}
//call main function to execute code
main()
// AdapterPattern_intro.swift
Dalam contoh di atas
Dalam contoh di atas
Baris 6, kelas Titik mewakili satu titik. Baris 6, kelas Titik mewakili sebuah titik.
Baris 16, kelas Segmen Garis mewakili segmen garis. Baris 16, kelas LineSegment mewakili segmen garis.
Baris 29, classDrawingPad mewakili kanvas untuk menggambar. DrawingPad dapat menggambar satu atau beberapa titik pada kanvas. Baris 29, kelas DrawingPad mewakili kanvas yang digunakan untuk menggambar. DrawingPad dapat menggambar satu atau beberapa titik di kanvas.
Kita dapat menggambar sebuah titik dalam contoh ini tetapi tidak dapat menggambar segmen garis langsung di kanvas menggunakan contoh papan gambar. Di sinilah pola adaptor menjadi penyelamat, berkat pola adaptor. Kita bisa menggambar sebuah titik dalam contoh ini, tapi kita tidak bisa menggambar segmen garis langsung di kanvas menggunakan instance artboard. Di sini, pola adaptor berperan, berkat pola adaptor.

// Hitendra Solanki
// Adapter design pattern Playground example
import Foundation
class Point {
var x: Int
var y: Int
init(x: Int, y: Int) {
self.x = x
self.y = y
}
}
class LineSegment {
var startPoint: Point
var endPoint: Point
init(startPoint: Point, endPoint: Point) {
self.startPoint = startPoint
self.endPoint = endPoint
}
}
//Mark:- DrawingPad
// This is just to make example more interesting
// We are just printing the point on Console to make it simple
class DrawingPad {
//Draw Single point, main drawing method
func draw(point: Point) {
print(".")
}
//Draw multiple points
func draw(points: [Point]) {
points.forEach { (point) in
self.draw(point: point)
}
}
}
//Mark: LineSegmentToPointAdapter
// This is responsible to generate all points exists on LineSegment
class LineSegmentToPointAdapter {
var lineSegment: LineSegment
init(lineSegment: LineSegment) {
self.lineSegment = lineSegment
}
func points() -> Array<Point> {
//To make things simple, without complex line drawing algorithms,
//This will only work for points like below
//(10,10) to (20,20)
//(34,34) to (89,89)
//(x,y) to (p,q) where y=x and q=p i.e. (x,x) to (p,p) just to make it simple for this demo
var points: Array<Point> = []
let zipXY = zip(
(self.lineSegment.startPoint.x...self.lineSegment.endPoint.x),
(self.lineSegment.startPoint.y...self.lineSegment.endPoint.y)
)
for (x,y) in zipXY {
let newPoint = Point(x: x, y: y)
points.append(newPoint)
}
return points
}
}
func main(){
let drawingPad = DrawingPad()
//Remeber: (x,y) to (p,q) where y=x and q=p => (x,x) to (p,p) for our points logic to work
//create lineSegment
let startPoint = Point(x: 2, y: 2)
let endPoint = Point(x: 10, y: 10)
let lineSegment = LineSegment(startPoint: startPoint, endPoint: endPoint)
//create adapter
let adapter = LineSegmentToPointAdapter(lineSegment: lineSegment)
//get points from adapter to draw
let points = adapter.points()
drawingPad.draw(points: points) //it will draw total 9 dots on console
}
//call main function to execute code
main()
//AdapterPattern_simpleSolution.swift
Line45, kelas LineSegmentToPointAdapter mewakili adaptor yang merupakan konsep inti artikel ini. Dibutuhkan tipe LineSegment yang ada sebagai masukan dan memberi kita serangkaian titik dalam kasus kita. Line45, kelas Linesegmenttopadapter mewakili adaptor, yang merupakan konsep inti artikel ini. Dibutuhkan sebagai masukan tipe LineSegment yang sudah ada dan memberi kita serangkaian titik dalam kasus ini.
###Kesimpulan Kesimpulan
-
Adaptor adalah kelas apa pun yang menggunakan satu objek sebagai parameter dalam konstruktor. Adaptor adalah kelas apa pun yang menerima objek sebagai parameter dalam konstruktornya.
-
Kelas adaptor memiliki properti/metode yang dapat kita gunakan sebagai tipe yang diperlukan. Kelas adaptor memiliki properti/metode yang dapat digunakan sebagai tipe yang diperlukan.
-
Adaptor juga dapat langsung bertindak sesuai tipe yang diperlukan, tergantung implementasinya. Adaptor juga dapat langsung memutar tipe yang diperlukan, tergantung implementasinya.Ini hanyalah implementasi sederhana dari pola adaptor dalam pemrograman berorientasi objek menggunakan Swift. Tapi tunggu dulu, ada sesuatu yang lebih dan lebih maju dalam pola ini. Ini hanyalah implementasi sederhana dari pola Adaptor dalam pemrograman berorientasi objek menggunakan Swift. Tapi tunggu dulu, masih banyak lagi hal dan perkembangan dalam mode ini.
Pola desain adaptor lebih kuat dengan…. Pola Desain Adaptor bahkan lebih kuat…
Lebih banyak konten segera hadir… Lainnya segera hadir…
Klik untuk melihat teks asli: https://medium.com/flawless-app-stories/adapter-pattern-design-patterns-by-tutorials-the-power-of-oop-part-3-112a956c1101
What to read next
Want more posts about Translation?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Translation?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home