Monday, July 26, 2010

Class Compositions and Associations(Siniflarin Olusumu ve Birlikteliyi)

Composition Association(Oluşum) : Sahiplik ("ownership") modellemesi için kullanılan özel bir birliktelik türüdür. Bütün-Parça ilişkisini temsil etmesi ve parçanın kendi bağımsız varlığına sahip olmayışıdır. Bütünün varlığını temsil eden nesne ayrıca parçanın da yaşamından sorumludur.A composition association can be described as object A is “composed-of” object B..Temel olarak Association ve Aggregation ilişki türleri birer Conposition çeşidi olarak düşünülebilir.
Yani Composition elde etmek için verilerimiz veya nesnelerimiz arasında kurabileceğimiz ilişki türleri Association veya Aggregation olabilir. Bu iki ilişki türünün arasındaki en temel fark ise birisinin verileri kendi içinde barındırması diğerinin ise atıfta bulunmasıdır.




 

Direct Association(Birliktelik) : İki sınıf arasındaki yapısal ilişkiye verilen isim. Herhangi bir dereceye sahip olacak şekilde aralarında ilişki bulunan sınıflar bu birlikteliğe sahip olurlar. UML gösteriminde düz bir çizgi ile temsil edilmektedir. Bu ilişki bize o iki sınıf arasında mesaj alışverişini sağlayan bir kanalın olduğunu anlatır. Burada Java'da mesaj alışverişinin metot çağrımlarıyla gerçekleştiğini hatırlatmak gerekir. Birliktelikler genellikle referanslar ile gerçekleştirilir.Direct association describes a “has-a” relationship.



Aggregation Association(Münasebet ):  "Sahip olma" ("possession") ilişkisini temsil eden özel bir birlikteliktir. An aggregation association represents a “part-of” the whole relationship. Her iki nesne de kendi bağımsız varoluşlarına sahiptir. Örneğin Aggregation ilişkisinde bir nesneden diğer nesneye atıfta bulunulur. Bu durum bir ders ile öğrenci arasındaki ilişkiye benzer. Dersin bitmesi ve ders nesnesinin (object) yok olması durumunda bu dersi alan öğrencilerin varlığı devam eder.






Temporary Association(Gecici) :Bu Temporary  bir methotun geri donus deyeri , yerel degisken yada methot parametrei olabilir.Temporary en zayıf şeklidir. Bu ilişki için kalıcı değildir









Multiplicities
İki sınıf arasındaki nasil bir ilişki oldugunu gosterir. 3 bolumden olsur.
  • One-to-one multiplicity
  • One-to-many multiplicity
  • Many-to-many multiplicity.



Class Association Relationships
  • One-to-one class association
  • One-to-many class association
  • Many-to-many class association
Example One-to-one class association
 public class Truck {
/* This is an example of a one-to-one direct association */
        Trailer trailer;
       public void setTrailer(Trailer t){
              trailer = t;
       }
/** Remainder of Truck class would be here */
}


Example One-to-many class association
public class Car {
       Wheel[] wheel = new Wheel[4];
        
        public void setWheels(Wheel w) {
            wheel[0] = w;
            wheel[1] = w;
            wheel[2] = w;
           wheel[3] = w;
      }
// Remainder of Car class would be here
}

Example Many-to-many class association


// TrafficLight class
public class TrafficLight {
     int lightID;
     TrafficLight(int ID) {
           lightID = ID;
     }

}

// Car class
public class Car {
      TrafficLight[] allTrafficLights;
     Car(TrafficLight[] trafficLights) {
          allTrafficLights=trafficLights;
     }
}


public class TrafficSimulator {
        Car[] cars = new Car[3];
        TrafficLight[] trafficLights = new TrafficLight[8];
        public static void main(String[] args) {
                new TrafficSimulator();
       }
      TrafficSimulator() {
            for (int i = 0; i < trafficLights.length; i++) {
                    trafficLights[i] = new TrafficLight(i);
             }
             cars[0] = new Car(trafficLights);
             cars[1] = new Car(trafficLights);
             cars[2] = new Car(trafficLights);
       }
}


Class Composition Relationships
  • One-to-One Class Composition
  • One-to-Many Class Composition
 Example One-to-One Class Composition
public class Tire {
       TireAirPressure tireAirPressure;
       Tire(){
             tireAirPressure = new TireAirPressure();
       }
}


 Example One-to-Many Class Composition
public class SensorStatus {
      int status;
      public SensorStatus(int newStatus) {
            status = newStatus;
       }
}





public class CarComputer {
         SensorStatus[] sensorStatus = new SensorStatus[5];
         public CarComputer() {
                  sensorStatus[0] = new SensorStatus(1);
                  sensorStatus[1] = new SensorStatus(1);
                  sensorStatus[2] = new SensorStatus(1);
                  sensorStatus[3] = new SensorStatus(1);
                  sensorStatus[4] = new SensorStatus(1);
         }
}



Bu Yaziyi olusturuken kullandigim kaynaklar
http://www.bilgisayarkavramlari.com/2008/12/20/birliktelik-munasebet-ve-olusum-association-aggregation-and-composition/comment-page-1/#comment-43264


No comments:

Post a Comment