![]()
Загрузка...
| Реферат на тему: Цепочка обязанностейПлан:
ВведениеЦепочка обязанностей — поведенческий шаблон проектирования, предназначенный для организации в системе уровней ответственности. 1. ПрименениеШаблон рекомендован для использования в условиях:
2. Примеры2.1. Пример на C#Исходный текст на языке C#
using System; namespace ChainOfResponsibility { class Program { static void Main(string[] args) { Handler start = null; for (int i = 5; i > 0; i--) { Console.WriteLine("Handler " + i + " deals up to a limit of " + i * 1000); start = new Handler(i, start); } int[] a = { 50, 2000, 1500, 10000, 175, 4500 }; foreach (int i in a) Console.WriteLine(start.HandleRequest(i)); } } class Handler { Handler next; int id; public int Limit { get; set; } public Handler(int id, Handler handler) { this.id = id; Limit = id * 1000; next = handler; } public string HandleRequest(int data) { if (data < Limit) return "Request for " + data + " handled at level " + id; else if (next != null) return next.HandleRequest(data); else return ("Request for " + data + " handled BY DEFAULT at level " + id); } } } 2.2. Пример на VB.NETИсходный текст на языке VB.NET
Namespace ChainOfResponsibility Class Program Shared Sub Main() Dim start As Handler = Nothing For I As Integer = 5 To 1 Step -1 Console.WriteLine("Handler " & I & " deals up to a limit of " & I * 1000) start = New Handler(I, start) Next Dim A As Integer() = {50, 2000, 1500, 10000, 175, 4500} For Each I As Integer In A Console.WriteLine(start.HandleRequest(I)) Next Console.Read() End Sub End Class Class Handler Private NextHandler As Handler Private m_Limit As Integer Private id As Integer Public Property Limit() As Integer Get Return m_Limit End Get Set(ByVal value As Integer) m_Limit = Value End Set End Property Public Sub New(ByVal id As Integer, ByVal handler_1 As Handler) Me.id = id Limit = id * 1000 NextHandler = handler_1 End Sub Public Function HandleRequest(ByVal data As Integer) As String If data < Limit Then Return "Request for " & data & " handled at level " & id ElseIf NextHandler IsNot Nothing Then Return NextHandler.HandleRequest(data) Else Return ("Request for " & data & " handled BY DEFAULT at level " & id) End If End Function End Class End Namespace ИсточникиДанный реферат составлен на основе статьи из русской Википедии. Синхронизация выполнена 14.07.11 20:03:05 Похожие рефераты: Неисполнение обязанностей налогового агента, При исполнении служебных обязанностей (фильм), Цепочка, Анальная цепочка, Навигационная цепочка, Пищевая цепочка, Цепочка ББГКИ, Мартышкина цепочка (узел), Цепочка уравнений Боголюбова. Категории: Шаблоны проектирования. Текст доступен по лицензии Creative Commons Attribution-ShareAlike. |