larten-k
سه شنبه 08 تیر 1395, 12:34 عصر
سلام چند تا سوال در مورد الگوها داشتم ممنون میشم راهنماییم کنین
در هر کدوم یک از این موارد از کدوم الگو استفاده شده
1)اینترفیس java.awt.event.ActionListener و کلاس javax.swing.AbstractAction و زیرکلاس هاش (مثلا CloseAction, IconifyActionund RestoreAction)(به غیر از observer)
https://docs.oracle.com/javase/8/docs/api/javax/swing/AbstractAction.html
2)متد های run() و start() در java.lang.Thread.
https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
3) متد clone() در کلاس java.util.HashSet (بطور کلی هر کلاسی که java.lang.Clonable رو ایمپیلیمنت میکنه)
https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html#clone--
و یک سوال دیگه در این کد به جای اینکه این 4تا متد (addGift(), calculateDiscount(), calculateBillingAmount() send()) رو در داخل کلاس اینگونه اجرا بشن چه الگویی استفاده کنیم که با همین ترتیب اجرا بشه
public class AppSpaghetti {
public static void main(String[] args) {
UserType uType = UserType.valueOf(args[0]);
Bill bill = null;
switch (uType) {
case New:
bill = new NewUserBill();
break;
case Premium:
bill = new PremiumUserBill();
break;
case Standard:
bill = new StandardUserBill();
break;
default:
bill = new StandardUserBill();
break;
}
// بعد از آماده شدن صورتحساب باید این مراحل بعدی انجام یشن به ترتیب
// TODO چطور و با استفاده از کدوم الگو میتونسم مطمئن شیم که این 4تا متد به ترتیب اجرا میشن؟
bill.addGift(); //مشتری جدید هدیه دریافت میکند
bill.calculateDiscount(); // مشتری همیشگی تخفیف دریافت میکند
bill.calculateBillingAmount(); // همه جا به طور یکسان و ثابت این متد اجرا میشود
bill.send(); // این متد هم همینطور(مثلن از طریق ایمیل و ...)
System.out.println(bill);
}
}
در هر کدوم یک از این موارد از کدوم الگو استفاده شده
1)اینترفیس java.awt.event.ActionListener و کلاس javax.swing.AbstractAction و زیرکلاس هاش (مثلا CloseAction, IconifyActionund RestoreAction)(به غیر از observer)
https://docs.oracle.com/javase/8/docs/api/javax/swing/AbstractAction.html
2)متد های run() و start() در java.lang.Thread.
https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
3) متد clone() در کلاس java.util.HashSet (بطور کلی هر کلاسی که java.lang.Clonable رو ایمپیلیمنت میکنه)
https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html#clone--
و یک سوال دیگه در این کد به جای اینکه این 4تا متد (addGift(), calculateDiscount(), calculateBillingAmount() send()) رو در داخل کلاس اینگونه اجرا بشن چه الگویی استفاده کنیم که با همین ترتیب اجرا بشه
public class AppSpaghetti {
public static void main(String[] args) {
UserType uType = UserType.valueOf(args[0]);
Bill bill = null;
switch (uType) {
case New:
bill = new NewUserBill();
break;
case Premium:
bill = new PremiumUserBill();
break;
case Standard:
bill = new StandardUserBill();
break;
default:
bill = new StandardUserBill();
break;
}
// بعد از آماده شدن صورتحساب باید این مراحل بعدی انجام یشن به ترتیب
// TODO چطور و با استفاده از کدوم الگو میتونسم مطمئن شیم که این 4تا متد به ترتیب اجرا میشن؟
bill.addGift(); //مشتری جدید هدیه دریافت میکند
bill.calculateDiscount(); // مشتری همیشگی تخفیف دریافت میکند
bill.calculateBillingAmount(); // همه جا به طور یکسان و ثابت این متد اجرا میشود
bill.send(); // این متد هم همینطور(مثلن از طریق ایمیل و ...)
System.out.println(bill);
}
}