我有2個項目:A和B應該互相交互。這叫做適配器嗎? +適配器vs修飾器
項目A介紹接口名稱ISpecialTask和項目B應該實現它。
Projet B有一個名爲TaskWithListOfProperties的實體,它不能實現ISpecialTask,因爲它具有不同的屬性結構(此外,所有系統都知道如何使用TaskWithListOfProperties,我不想改變它的結構)。
所以我決定創建一個類名爲SpecialTaskFromListOfProperties實現ISpecialTask和使用TaskWithListOfProperties例如爲了使用它的項目之間的互動。
interface ISpecialTask {
long Id{get;}
long WorkerId{get;}
long VehicleId{get;}
long CustomerId{get;}
}
class TaskWithListOfProperties {
IDictionary<string, long> Properties {get;
}
class SpecialTaskFromListOfProperties : ISpecialTask {
public SpecialTaskFromListOfProperties(TaskWithListOfProperties ins) {
...
...
}
public long Id { get{ ... } }
public long WorkerId { get{ ... } }
public long VehicleId { get{ ... } }
public long CustomerId { get{ ... } }
}
SpecialTaskFromListOfProperties實際上是Adapter模式嗎?
適配器模式和裝飾器模式有什麼區別?
Id,WorkerId等來自TaskWithListOfProperties的成員(屬性成員)。所以這是適配器,因爲我用它來適應存在接口而不添加新行爲? – Naor
正確。這是一個適配器 – Vitaly