• 0216 488 01 91
  • destek@sonsuzbilgi.com.tr

Restoran Web Siteniz Olsun!

Üstelik QR Kod Menü Sistemi de Hediyemiz.

Sınırsız Menü, Sınırsız Yemek, SSL Sertifikası, Full Mobil Uyumlu, Full SEO Uyumlu
ve Daha bir çok özellik. Bugün kullanmaya başlayın.


Web Yazılımı İçerisinde Kullanılan Tasarım Desenleri (Design Patterns)

Adı : Web Yazılımı İçerisinde Kullanılan Tasarım Desenleri (Design Patterns)

Web yazılımı geliştirmesi yapılırken birtakım tasarım desenleri kullanılarak projeler daha öngörülebilir hale getirilebilir. Bu yazıda, web yazılımında kullanılan tasarım desenleri hakkında açıklama ve örnekler verilecektir.

Model View Controller (MVC) Deseni

MVC deseni, web uygulamalarında en çok kullanılan desendir. Bu sayede, uygulamanın birbirine bağımlı olduğu unsurları uygun şekilde düzenleyerek, uygulamanın yönetimi daha basit hale getirilir. Bu desen, web uygulamalarında yazılım ve tasarımın ayrıştırılması sayesinde birçok avantaj sağlar.

Bu desenin üç bölümden oluşur:

- Model (Yapı) - Uygulamadaki veriyi temsil eder
- View (Görünüm) - Kullanıcının veriyle etkileşime girdiği grafik arayüzü temsil eder
- Controller (Denetleyici) - Model ve görünüm arasında bağlantı sağlar

Örnek:

MVC'i PHP Dilinde kullanarak örneklendirebiliriz:

```php
class Student
{
private $name;
private $roll_no;

function __construct($name, $roll_no)
\t{
$this-> name = $name;
$this-> roll_no = $roll_no;
}

function getName()
\t{
return $this-> name;
}

function getRollNo()
\t{
return $this-> roll_no;
}
}

//View class
class View
{
function printStudent($name, $roll_no)
\t{
echo \"Student:\";
echo \"Name: \", $name, \"\
\";
echo \"Roll No:\", $roll_no, \"\
\";
}
}

//Controller class
class Controller
{
private $model;
private $view;
function __construct($model, $view)
\t{
$this-> model = $model;
$this-> view = $view;
}

function setStudentName($name)
\t{
$this-> model-> setName($name);
}

function getStudentName()
\t{
return $this-> model-> getName();
}

function setStudentRollNo($roll_no)
\t{
$this-> model-> setRollNo($roll_no);
}

function getStudentRollNo()
\t{
return $this-> model-> getRollNo();
}

function updateView()
\t{
$this-> view-> printStudent($this-> model-> getName(), $this-> model-> getRollNo());
}
}

//use case
//initialize model
$model = new Student(\"Mehmet\", \"001\");

//initializing view
$view = new View();

//Initializing controller
$controller = new Controller($model, $view);

//update model data
$controller-> setStudentName(\"Murat\");
$controller-> setStudentRollNo(\"004\");

//update view
$controller-> updateView();

```

Factory Deseni

Factory (Fabrika) deseni, bir sınıfın nesnelerinin oluşturulması için bir arayüz sağlar. Böylece, sınıfların oluşturulması kolaylaşır ve sınıflar arasındaki bağımlılıklar azaltılmış olur.

Bu desenin birkaç bileşeni vardır:

- Üst sınıf - Tüm nesnelerin sınıflarını içerir
- Alt sınıflar - Üst sınıfdan türetilir ve nesne oluşturur

Örnek:

Factory desenini Javascript dili ile örneklendirelim:

```javascript
// abstract class CarMaker
function CarMaker() {
}
// function to create a new car
CarMaker.prototype.buildCar = function(type) {
\tvar car;
\tif (typeof CarMaker[type] !== \"function\") {
\t\tthrow {
\t\t\tname: \"Error\",
\t\t\tmessage: type + \" doesn't exist\"
\t\t};
\t}
\tfunction F() {};
\tF.prototype = CarMaker[type].prototype;
\tcar = new F();
\tCarMaker[type].apply(car);
\treturn car;
};

// small car
CarMaker.Compact = function() {
\tthis.doors = 4;
};
CarMaker.Compact.prototype.drive = function() {
\treturn \"driving a compact car\";
};

// SUV car
CarMaker.SUV = function() {
\tthis.doors = 6;
};
CarMaker.SUV.prototype.drive = function() {
\treturn \"driving a SUV car\";
};

// sports car
CarMaker.Sports = function() {
\tthis.doors = 2;
};
CarMaker.Sports.prototype.drive = function() {
\treturn \"driving a sports car\";
};

// use case
// using CarMaker to create car objects
var carFactory = new CarMaker();
var myCar1 = carFactory.buildCar(\"Sports\");
var myCar2 = carFactory.buildCar(\"Compact\");

// logs to console
console.log(myCar1.drive()); // \"driving a sports car\"
console.log(myCar2.doors); // 4

```

Singleton Deseni

Singleton (Tek Nesne) Deseni, bir sınıfın sadece bir örneğinin oluşturulduğundan emin olmak için kullanılır. Bu sayede, sınıfın birden fazla kopyası oluşmasının önüne geçilir. Bu desen genellikle yapılandırıcısı özel olarak ayarlanarak oluşturulur.

Örnek:

Singleton desenini Java dili ile örneklendirelim:

```java
// Singleton
class Database {

\t//ensuring only one instance can be created
\tprivate static Database instance;

\t//making constructor private so that only one instance can be created
\tprivate Database() {
\t}

\t//provides access to only one instance of Database class
\tpublic static Database getInstance() {
\t\tif (instance == null) {
\t\t\tinstance = new Database();
\t\t}
\t\treturn instance;
\t}

\t// other methods for database operations
\tpublic void connect() {
\t\tSystem.out.println(\"Connected to database...\");
\t}

}

// use case
class TestSingleton {
\tpublic static void main(String[] args) {
\t\t// creating multiple instances
\t\tDatabase db1 = Database.getInstance();
\t\tDatabase db2 = Database.getInstance();

\t\t// logs to console
\t\tSystem.out.println(db1 == db2); // true
\t\tdb1.connect(); // Connected to database...
\t\tdb2.connect(); // Connected to database...
\t}
}

```


Sık Sorulan Sorular

1. Tasarım desenleri nedir?
Tasarım desenleri, çeşitli programlama dillerinde modüler ve öngörülebilir yazılım oluşturmaya yardımcı olan yapısal tasarım ilkeleridir.

2. Web yazılımında hangi tasarım desenleri kullanılır?
MVC, Factory ve Singleton gibi tasarım desenleri, web yazılımı geliştirmede en yaygın kullanılan desenlerden bazılarıdır.

3. Tasarım desenleri neden kullanılır?
Tasarım desenleri, yazılım geliştirmede tekrarlanan problemlere basit ve özelleştirilebilir çözümler sunarak geliştirme sürecini hızlandırmak ve hatayı minimize etmek için kullanılır.

4. Bir web uygulaması için en iyi tasarım deseni hangisidir?
Yapılan çalışmalar ve yapılabilecek işlemlere bağlı olarak, uygulama için en uygun ve en iyi tasarım deseni seçilir. Örneğin, verileri yönetmek için MVC kullanılabilir, nesne oluşturmak için Factory, tek örneği sağlamak için ise Singleton kullanılabilir."

Web Yazılımı İçerisinde Kullanılan Tasarım Desenleri (Design Patterns)

Adı : Web Yazılımı İçerisinde Kullanılan Tasarım Desenleri (Design Patterns)

Web yazılımı geliştirmesi yapılırken birtakım tasarım desenleri kullanılarak projeler daha öngörülebilir hale getirilebilir. Bu yazıda, web yazılımında kullanılan tasarım desenleri hakkında açıklama ve örnekler verilecektir.

Model View Controller (MVC) Deseni

MVC deseni, web uygulamalarında en çok kullanılan desendir. Bu sayede, uygulamanın birbirine bağımlı olduğu unsurları uygun şekilde düzenleyerek, uygulamanın yönetimi daha basit hale getirilir. Bu desen, web uygulamalarında yazılım ve tasarımın ayrıştırılması sayesinde birçok avantaj sağlar.

Bu desenin üç bölümden oluşur:

- Model (Yapı) - Uygulamadaki veriyi temsil eder
- View (Görünüm) - Kullanıcının veriyle etkileşime girdiği grafik arayüzü temsil eder
- Controller (Denetleyici) - Model ve görünüm arasında bağlantı sağlar

Örnek:

MVC'i PHP Dilinde kullanarak örneklendirebiliriz:

```php
class Student
{
private $name;
private $roll_no;

function __construct($name, $roll_no)
\t{
$this-> name = $name;
$this-> roll_no = $roll_no;
}

function getName()
\t{
return $this-> name;
}

function getRollNo()
\t{
return $this-> roll_no;
}
}

//View class
class View
{
function printStudent($name, $roll_no)
\t{
echo \"Student:\";
echo \"Name: \", $name, \"\
\";
echo \"Roll No:\", $roll_no, \"\
\";
}
}

//Controller class
class Controller
{
private $model;
private $view;
function __construct($model, $view)
\t{
$this-> model = $model;
$this-> view = $view;
}

function setStudentName($name)
\t{
$this-> model-> setName($name);
}

function getStudentName()
\t{
return $this-> model-> getName();
}

function setStudentRollNo($roll_no)
\t{
$this-> model-> setRollNo($roll_no);
}

function getStudentRollNo()
\t{
return $this-> model-> getRollNo();
}

function updateView()
\t{
$this-> view-> printStudent($this-> model-> getName(), $this-> model-> getRollNo());
}
}

//use case
//initialize model
$model = new Student(\"Mehmet\", \"001\");

//initializing view
$view = new View();

//Initializing controller
$controller = new Controller($model, $view);

//update model data
$controller-> setStudentName(\"Murat\");
$controller-> setStudentRollNo(\"004\");

//update view
$controller-> updateView();

```

Factory Deseni

Factory (Fabrika) deseni, bir sınıfın nesnelerinin oluşturulması için bir arayüz sağlar. Böylece, sınıfların oluşturulması kolaylaşır ve sınıflar arasındaki bağımlılıklar azaltılmış olur.

Bu desenin birkaç bileşeni vardır:

- Üst sınıf - Tüm nesnelerin sınıflarını içerir
- Alt sınıflar - Üst sınıfdan türetilir ve nesne oluşturur

Örnek:

Factory desenini Javascript dili ile örneklendirelim:

```javascript
// abstract class CarMaker
function CarMaker() {
}
// function to create a new car
CarMaker.prototype.buildCar = function(type) {
\tvar car;
\tif (typeof CarMaker[type] !== \"function\") {
\t\tthrow {
\t\t\tname: \"Error\",
\t\t\tmessage: type + \" doesn't exist\"
\t\t};
\t}
\tfunction F() {};
\tF.prototype = CarMaker[type].prototype;
\tcar = new F();
\tCarMaker[type].apply(car);
\treturn car;
};

// small car
CarMaker.Compact = function() {
\tthis.doors = 4;
};
CarMaker.Compact.prototype.drive = function() {
\treturn \"driving a compact car\";
};

// SUV car
CarMaker.SUV = function() {
\tthis.doors = 6;
};
CarMaker.SUV.prototype.drive = function() {
\treturn \"driving a SUV car\";
};

// sports car
CarMaker.Sports = function() {
\tthis.doors = 2;
};
CarMaker.Sports.prototype.drive = function() {
\treturn \"driving a sports car\";
};

// use case
// using CarMaker to create car objects
var carFactory = new CarMaker();
var myCar1 = carFactory.buildCar(\"Sports\");
var myCar2 = carFactory.buildCar(\"Compact\");

// logs to console
console.log(myCar1.drive()); // \"driving a sports car\"
console.log(myCar2.doors); // 4

```

Singleton Deseni

Singleton (Tek Nesne) Deseni, bir sınıfın sadece bir örneğinin oluşturulduğundan emin olmak için kullanılır. Bu sayede, sınıfın birden fazla kopyası oluşmasının önüne geçilir. Bu desen genellikle yapılandırıcısı özel olarak ayarlanarak oluşturulur.

Örnek:

Singleton desenini Java dili ile örneklendirelim:

```java
// Singleton
class Database {

\t//ensuring only one instance can be created
\tprivate static Database instance;

\t//making constructor private so that only one instance can be created
\tprivate Database() {
\t}

\t//provides access to only one instance of Database class
\tpublic static Database getInstance() {
\t\tif (instance == null) {
\t\t\tinstance = new Database();
\t\t}
\t\treturn instance;
\t}

\t// other methods for database operations
\tpublic void connect() {
\t\tSystem.out.println(\"Connected to database...\");
\t}

}

// use case
class TestSingleton {
\tpublic static void main(String[] args) {
\t\t// creating multiple instances
\t\tDatabase db1 = Database.getInstance();
\t\tDatabase db2 = Database.getInstance();

\t\t// logs to console
\t\tSystem.out.println(db1 == db2); // true
\t\tdb1.connect(); // Connected to database...
\t\tdb2.connect(); // Connected to database...
\t}
}

```


Sık Sorulan Sorular

1. Tasarım desenleri nedir?
Tasarım desenleri, çeşitli programlama dillerinde modüler ve öngörülebilir yazılım oluşturmaya yardımcı olan yapısal tasarım ilkeleridir.

2. Web yazılımında hangi tasarım desenleri kullanılır?
MVC, Factory ve Singleton gibi tasarım desenleri, web yazılımı geliştirmede en yaygın kullanılan desenlerden bazılarıdır.

3. Tasarım desenleri neden kullanılır?
Tasarım desenleri, yazılım geliştirmede tekrarlanan problemlere basit ve özelleştirilebilir çözümler sunarak geliştirme sürecini hızlandırmak ve hatayı minimize etmek için kullanılır.

4. Bir web uygulaması için en iyi tasarım deseni hangisidir?
Yapılan çalışmalar ve yapılabilecek işlemlere bağlı olarak, uygulama için en uygun ve en iyi tasarım deseni seçilir. Örneğin, verileri yönetmek için MVC kullanılabilir, nesne oluşturmak için Factory, tek örneği sağlamak için ise Singleton kullanılabilir."


Pazaryeri Web Sitesi

Bir çok işletmeyi çatınız altında toplayın, pazarın belirleyeni olun!

*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle


Singleton MVC Factory Observer Iterator web yazılımı sürdürülebilirlik performans artışı