Tải bản đầy đủ (.doc) (2 trang)

Một số bài tập về design patterns (tiếp theo)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (104.76 KB, 2 trang )

BÀI TẬP
Môn TKPMHDT
--Một số bài tập về Design Patterns (tiếp theo)
1. Dưới đây là sơ đồ lớp của mẫu Singleton, hãy viết đoạn code bằng Java/C# để cài đặt cho
(các) lớp trong sơ đồ:
class Structural
Singleton
-

instance: Singleton

-instance

+ Instance() : Singleton
# Singleton()

2. Lược đồ lớp sau biểu diễn cho mẫu Builder. Hãy bổ sung các thuộc tính và phương thức
còn thiếu trong các lớp VehicleBuilder và ScooterBuilder để hoàn chỉnh sơ đồ (nêu rõ
kiểu của từng thuộc tính và phương thức – tĩnh/ảo/cụ thể/…)
class BuilderRealWorld
VehicleBuilder

Shop
+ Construct(VehicleBuilder) : void

#vehicle
Vehicle
-

parts: Hashtable = new Hashtable()
type: string



+ Show () : void
+ Vehicle(string)
«indexer»
+ this(string) : object

CarBuilder
+
+
+
+

BuildDoors() : void
BuildEngine() : void
BuildFrame() : void
BuildWheels() : void

MotorCycleBuilder
+
+
+
+

ScooterBuilder

BuildDoors() : void
BuildEngine() : void
BuildFrame() : void
BuildWheels() : void


3. Cho lược đồ lớp thuộc mẫu Adapter như sau. Hãy bổ sung các thuộc tính và phương thức
còn thiếu cho lớp GooseAdapter để lớp Goose có thể tương thích với giao tiếp Iquackable.

Page |1


class Class Diagram 6
«interface»
IQuackable
+ Quack() : void

DuckCall

GooseAdapter

-goose
Goose
+ Honk() : void
+ ToString() : string

+ Quack() : void
+ ToString() : string

4. Với lược đồ ở câu 3, cho cài đặt các lớp như sau. Hãy cài đặt hoàn chỉnh lớp
GooseAdapter.
public interface IQuackable
{
void Quack();
}
public class DuckCall : IQuackable

{
public void Quack()
{
Console.WriteLine("Kwak");
}
public override string ToString()
{
return "Duck Call";
}
}
public class Goose
{
public void Honk()
{
Console.WriteLine("Honk");
}
public override string ToString()
{
return "Goose";
}
}
-HẾTPage |2



×