我有一個有子項目列表的類。有沒有可以複製的設計模式,我可以將這些類應用於這些類,以便我可以從子級訪問父級實例,並且強制執行規則,例如無法將子級添加到多個父級等?父子級關係設計模式
3
A
回答
2
嘗試複合設計模式:
http://www.dofactory.com/Patterns/PatternComposite.aspx
要使用這個,你就必須在添加一些代碼來移回樹,它看起來像父,但比其其他應該管用。
只需添加一個屬性,該屬性在添加到樹時可以保存對父元素的引用。如果父級更改,則更新它,如果該節點被刪除,則將其設置爲空。
0
例如,您可以在任何語言的層級字典的幫助下,通過使用複合設計模式來實現父(面板)子(按鈕)關係!這裏是示例python代碼。
面板= DictObject( '面板') 按鈕= window.addChild( '按鈕') 文本字段= button.addChild( '文本')
1
像這樣可能?
public class Parent
{
public Parent()
{
_children = new List<Child>();
}
private IList<Child> _children;
public IEnumerable<Child> Children
{
get
{
return _children;
}
}
public void Add(Child child)
{
if (_children.Contains(child)) return;
if (child.Parent != null && child.Parent !=this) throw new Exception ("bla bla bla");
_children.Add(child);
child.Parent = this;
}
public void Remove (Child child)
{
child.Parent = null;
_children.Remove(child)
{
}
public class Child
{
public Parent Parent
{
get { return _parent;}
protected internal set { _parent = value;}
}
相關問題
- 1. 域驅動設計 - 父子關係模式 - 規範模式
- 2. SQL中的父級子記錄關係?
- 3. 無級聯的父子關係
- 4. 設計模式 - 解決依賴關係
- 5. 對象關係映射設計模式
- 6. 父子關係
- 7. 父子關係
- 8. CRUD級鎖 - 設計模式
- 9. XSD父子關係
- 10. 父子關係2005
- 11. Qt父子關係
- 12. Django的父子關係模板
- 13. 在SQL Server中設計鄰接列表或父子關係?
- 14. 從子外部Iframe設計父級樣式?
- 15. 工作單元模式 - 管理父母子女關係
- 16. 存儲庫模式與實體框架4.1和父/子關係
- 17. 關於設計關係模式的想法?
- 18. 設計模式來建模內容鏈接和關係
- 19. 父母子女關係UI
- 20. 父子關係擅長
- 21. Dojo Tree:逆父/子關係
- 22. NHibernate的父/子關係
- 23. 父母/子女關係 - indexOf
- 24. 獲取父子關係
- 25. 導航父子關係
- 26. 設置父級和子級模型,但子級擁有它自己的列
- 27. 高級JavaScript/JQuery設計模式
- 28. 添加新班級的設計模式
- 29. 關係類設計
- 30. 爲父/子關係指定級聯刪除?