码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---门面模式之HomeTheater[转]

时间:2014-11-05 16:24:28      阅读:392      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   ar   os   for   sp   div   

bubuko.com,布布扣
  1bubuko.com,布布扣unit uSubObject;
  2bubuko.com,布布扣
  3bubuko.com,布布扣interface
  4bubuko.com,布布扣
  5bubuko.com,布布扣type
  6bubuko.com,布布扣
  7bubuko.com,布布扣  { TAmplifier与TTuner,TCDPlayer,TDVDPlayer相互依赖。            }
  8bubuko.com,布布扣  { 在TTuner等的简单实现时用不到对TAmplifier的引用,               }
  9bubuko.com,布布扣  { 但现实生活中就应该让TAmplifier提供服务,所以这里保留了。       }
 10bubuko.com,布布扣  { TProjector对TDVDPlayer的引用也是同样道理。                     }
 11bubuko.com,布布扣  { 前置TAmplifier也可以,把TAmplifier的声明放在TTuner等声明的后面 }
 12bubuko.com,布布扣
 13bubuko.com,布布扣  TTuner     = class;
 14bubuko.com,布布扣  TCDPlayer  = class;
 15bubuko.com,布布扣  TDVDPlayer = class;
 16bubuko.com,布布扣
 17bubuko.com,布布扣  TAmplifier = class(TObject)
 18bubuko.com,布布扣  private
 19bubuko.com,布布扣    FTuner: TTuner;
 20bubuko.com,布布扣    FCD : TCDPlayer;
 21bubuko.com,布布扣    FDVD: TDVDPlayer;
 22bubuko.com,布布扣    FDescription: String;
 23bubuko.com,布布扣  public
 24bubuko.com,布布扣    constructor Create(aDescription: String);
 25bubuko.com,布布扣    procedure Open;
 26bubuko.com,布布扣    procedure Off;
 27bubuko.com,布布扣    procedure SetStereoSound;
 28bubuko.com,布布扣    procedure SetSurroundSound;
 29bubuko.com,布布扣    procedure SetVolume(aLevel: Integer);
 30bubuko.com,布布扣    procedure SetTuner (aTuner: TTuner);
 31bubuko.com,布布扣    procedure SetCD (aCD : TCDPlayer);
 32bubuko.com,布布扣    procedure SetDVD(aDVD: TDVDPlayer);
 33bubuko.com,布布扣    function ToString: String;
 34bubuko.com,布布扣  end;
 35bubuko.com,布布扣
 36bubuko.com,布布扣  TTuner = class(TObject)
 37bubuko.com,布布扣  private
 38bubuko.com,布布扣    FAmplifier: TAmplifier;
 39bubuko.com,布布扣    FDescription: String;
 40bubuko.com,布布扣    FFrequency: Double;
 41bubuko.com,布布扣  public
 42bubuko.com,布布扣    constructor Create(aDescription: String; aAmplifier: TAmplifier);
 43bubuko.com,布布扣    procedure Open;
 44bubuko.com,布布扣    procedure Off;
 45bubuko.com,布布扣    procedure SetAm;
 46bubuko.com,布布扣    procedure SetFm;
 47bubuko.com,布布扣    procedure SetFrequency(aFrequency: Double);
 48bubuko.com,布布扣    function ToString: String;
 49bubuko.com,布布扣  end;
 50bubuko.com,布布扣
 51bubuko.com,布布扣  TCDPlayer = class(TObject)
 52bubuko.com,布布扣  private
 53bubuko.com,布布扣    FAmplifier: TAmplifier;
 54bubuko.com,布布扣    FDescription: String;
 55bubuko.com,布布扣    FCurrentTrack: Integer;
 56bubuko.com,布布扣    FTitle: String;
 57bubuko.com,布布扣  public
 58bubuko.com,布布扣    constructor Create(aDescription: String; aAmplifier: TAmplifier);
 59bubuko.com,布布扣    procedure Open;
 60bubuko.com,布布扣    procedure Off;
 61bubuko.com,布布扣    procedure Eject;
 62bubuko.com,布布扣    procedure Play(aTitle: String ); overload;
 63bubuko.com,布布扣    procedure Play(aTrack: Integer); overload;
 64bubuko.com,布布扣    procedure Stop;
 65bubuko.com,布布扣    procedure Pause;
 66bubuko.com,布布扣    function ToString: String;
 67bubuko.com,布布扣  end;
 68bubuko.com,布布扣
 69bubuko.com,布布扣  TDVDPlayer = class(TObject)
 70bubuko.com,布布扣  private
 71bubuko.com,布布扣    FAmplifier: TAmplifier;
 72bubuko.com,布布扣    FDescription: String;
 73bubuko.com,布布扣    FCurrentTrack: Integer;
 74bubuko.com,布布扣    FMovie: String;
 75bubuko.com,布布扣  public
 76bubuko.com,布布扣    constructor Create(aDescription: String; aAmplifier: TAmplifier);
 77bubuko.com,布布扣    procedure Open;
 78bubuko.com,布布扣    procedure Off;
 79bubuko.com,布布扣    procedure Eject;
 80bubuko.com,布布扣    procedure Play(aMovie: String ); overload;
 81bubuko.com,布布扣    procedure Play(aTrack: Integer); overload;
 82bubuko.com,布布扣    procedure Stop;
 83bubuko.com,布布扣    procedure Pause;
 84bubuko.com,布布扣    procedure SetTwoChannelAudio;
 85bubuko.com,布布扣    procedure SetSurroundAudio;
 86bubuko.com,布布扣    function ToString: String;
 87bubuko.com,布布扣  end;
 88bubuko.com,布布扣
 89bubuko.com,布布扣  TScreen = class(TObject)
 90bubuko.com,布布扣  private
 91bubuko.com,布布扣    FDescription: String;
 92bubuko.com,布布扣  public
 93bubuko.com,布布扣    constructor Create(aDescription: String);
 94bubuko.com,布布扣    procedure UP;
 95bubuko.com,布布扣    procedure Down;
 96bubuko.com,布布扣    function ToString: String;
 97bubuko.com,布布扣  end;
 98bubuko.com,布布扣
 99bubuko.com,布布扣  TPopcornPopper = class(TObject)
100bubuko.com,布布扣  private
101bubuko.com,布布扣    FDescription: String;
102bubuko.com,布布扣  public
103bubuko.com,布布扣    constructor Create(aDescription: String);
104bubuko.com,布布扣    procedure Open;
105bubuko.com,布布扣    procedure Off;
106bubuko.com,布布扣    procedure Pop;
107bubuko.com,布布扣    function ToString: String;
108bubuko.com,布布扣  end;
109bubuko.com,布布扣
110bubuko.com,布布扣  TTheaterLights = class(TObject)
111bubuko.com,布布扣  private
112bubuko.com,布布扣    FDescription: String;
113bubuko.com,布布扣  public
114bubuko.com,布布扣    constructor Create(aDescription: String);
115bubuko.com,布布扣    procedure Open;
116bubuko.com,布布扣    procedure Off;
117bubuko.com,布布扣    procedure Dim(aLevel: Integer);
118bubuko.com,布布扣    function ToString: String;
119bubuko.com,布布扣  end;
120bubuko.com,布布扣
121bubuko.com,布布扣  TProjector = class(TObject)
122bubuko.com,布布扣  private
123bubuko.com,布布扣    FDescription: String;
124bubuko.com,布布扣    FDVD: TDVDPlayer;
125bubuko.com,布布扣  public
126bubuko.com,布布扣    constructor Create(aDescription: String; aDVD: TDVDPlayer);
127bubuko.com,布布扣    procedure Open;
128bubuko.com,布布扣    procedure Off;
129bubuko.com,布布扣    procedure WideScreenMode;
130bubuko.com,布布扣    procedure TVMode;
131bubuko.com,布布扣    function ToString: String;
132bubuko.com,布布扣  end;
133bubuko.com,布布扣
134bubuko.com,布布扣implementation
135bubuko.com,布布扣
136bubuko.com,布布扣{ TAmplifier }
137bubuko.com,布布扣
138bubuko.com,布布扣constructor TAmplifier.Create(aDescription: String);
139bubuko.com,布布扣begin
140bubuko.com,布布扣  FDescription := aDescription;
141bubuko.com,布布扣end;
142bubuko.com,布布扣
143bubuko.com,布布扣procedure TAmplifier.Off;
144bubuko.com,布布扣begin
145bubuko.com,布布扣  Writeln(FDescription + ‘ off‘);
146bubuko.com,布布扣end;
147bubuko.com,布布扣
148bubuko.com,布布扣procedure TAmplifier.Open;
149bubuko.com,布布扣begin
150bubuko.com,布布扣  Writeln(FDescription + ‘ on‘);
151bubuko.com,布布扣end;
152bubuko.com,布布扣
153bubuko.com,布布扣procedure TAmplifier.SetCD(aCD: TCDPlayer);
154bubuko.com,布布扣begin
155bubuko.com,布布扣  Writeln(FDescription + ‘ setting CD player to ‘ + aCD.ToString);
156bubuko.com,布布扣  FCD := aCD;
157bubuko.com,布布扣end;
158bubuko.com,布布扣
159bubuko.com,布布扣procedure TAmplifier.SetDVD(aDVD: TDVDPlayer);
160bubuko.com,布布扣begin
161bubuko.com,布布扣  Writeln(FDescription + ‘ setting DVD player to ‘ + aDVD.ToString);
162bubuko.com,布布扣  FDVD := aDVD;
163bubuko.com,布布扣end;
164bubuko.com,布布扣
165bubuko.com,布布扣procedure TAmplifier.SetStereoSound;
166bubuko.com,布布扣begin
167bubuko.com,布布扣  Writeln(FDescription + ‘ stereo mode on‘);
168bubuko.com,布布扣end;
169bubuko.com,布布扣
170bubuko.com,布布扣procedure TAmplifier.SetSurroundSound;
171bubuko.com,布布扣begin
172bubuko.com,布布扣  Writeln(FDescription + ‘ surround sound on (5 speakers, 1 subwoofer)‘);
173bubuko.com,布布扣end;
174bubuko.com,布布扣
175bubuko.com,布布扣procedure TAmplifier.SetTuner(aTuner: TTuner);
176bubuko.com,布布扣begin
177bubuko.com,布布扣  Writeln(FDescription + ‘ setting Tuner player to ‘, aTuner.ToString);
178bubuko.com,布布扣  FTuner := aTuner;
179bubuko.com,布布扣end;
180bubuko.com,布布扣
181bubuko.com,布布扣procedure TAmplifier.SetVolume(aLevel: Integer);
182bubuko.com,布布扣begin
183bubuko.com,布布扣  Writeln(FDescription +  ‘ setting volume to ‘ , aLevel);
184bubuko.com,布布扣end;
185bubuko.com,布布扣
186bubuko.com,布布扣function TAmplifier.ToString: String;
187bubuko.com,布布扣begin
188bubuko.com,布布扣  Result := FDescription;
189bubuko.com,布布扣end;
190bubuko.com,布布扣
191bubuko.com,布布扣{ TTuner }
192bubuko.com,布布扣
193bubuko.com,布布扣constructor TTuner.Create(aDescription: String; aAmplifier: TAmplifier);
194bubuko.com,布布扣begin
195bubuko.com,布布扣  FDescription := aDescription;
196bubuko.com,布布扣  FAmplifier   := aAmplifier;
197bubuko.com,布布扣end;
198bubuko.com,布布扣
199bubuko.com,布布扣procedure TTuner.Off;
200bubuko.com,布布扣begin
201bubuko.com,布布扣  Writeln(FDescription + ‘ off‘);
202bubuko.com,布布扣end;
203bubuko.com,布布扣
204bubuko.com,布布扣procedure TTuner.Open;
205bubuko.com,布布扣begin
206bubuko.com,布布扣  Writeln(FDescription + ‘ on‘);
207bubuko.com,布布扣end;
208bubuko.com,布布扣
209bubuko.com,布布扣procedure TTuner.SetAm;
210bubuko.com,布布扣begin
211bubuko.com,布布扣  Writeln(FDescription + ‘ setting AM mode‘);
212bubuko.com,布布扣end;
213bubuko.com,布布扣
214bubuko.com,布布扣procedure TTuner.SetFm;
215bubuko.com,布布扣begin
216bubuko.com,布布扣  Writeln(FDescription + ‘ setting FM mode‘);
217bubuko.com,布布扣end;
218bubuko.com,布布扣
219bubuko.com,布布扣procedure TTuner.SetFrequency(aFrequency: Double);
220bubuko.com,布布扣begin
221bubuko.com,布布扣  Writeln(FDescription + ‘ setting frequency to ‘, aFrequency);
222bubuko.com,布布扣  FFrequency := aFrequency;
223bubuko.com,布布扣end;
224bubuko.com,布布扣
225bubuko.com,布布扣function TTuner.ToString: String;
226bubuko.com,布布扣begin
227bubuko.com,布布扣  Result := FDescription;
228bubuko.com,布布扣end;
229bubuko.com,布布扣
230bubuko.com,布布扣{ TCDPlayer }
231bubuko.com,布布扣
232bubuko.com,布布扣constructor TCDPlayer.Create(aDescription: String; aAmplifier: TAmplifier);
233bubuko.com,布布扣begin
234bubuko.com,布布扣  FDescription := aDescription;
235bubuko.com,布布扣  FAmplifier   := aAmplifier;
236bubuko.com,布布扣end;
237bubuko.com,布布扣
238bubuko.com,布布扣procedure TCDPlayer.Eject;
239bubuko.com,布布扣begin
240bubuko.com,布布扣  FTitle := ‘‘;
241bubuko.com,布布扣  Writeln(FDescription + ‘ eject‘);
242bubuko.com,布布扣end;
243bubuko.com,布布扣
244bubuko.com,布布扣procedure TCDPlayer.Off;
245bubuko.com,布布扣begin
246bubuko.com,布布扣  Writeln(FDescription + ‘ off‘);
247bubuko.com,布布扣end;
248bubuko.com,布布扣
249bubuko.com,布布扣procedure TCDPlayer.Open;
250bubuko.com,布布扣begin
251bubuko.com,布布扣  Writeln(FDescription + ‘ on‘);
252bubuko.com,布布扣end;
253bubuko.com,布布扣
254bubuko.com,布布扣procedure TCDPlayer.Pause;
255bubuko.com,布布扣begin
256bubuko.com,布布扣  Writeln(FDescription + ‘ paused <‘ + FTitle + ‘>‘);
257bubuko.com,布布扣end;
258bubuko.com,布布扣
259bubuko.com,布布扣procedure TCDPlayer.Play(aTitle: String);
260bubuko.com,布布扣begin
261bubuko.com,布布扣  FTitle := aTitle;
262bubuko.com,布布扣  FCurrentTrack := 0;
263bubuko.com,布布扣  Writeln(FDescription + ‘ playing <‘ + FTitle + ‘>‘);
264bubuko.com,布布扣end;
265bubuko.com,布布扣
266bubuko.com,布布扣procedure TCDPlayer.Play(aTrack: Integer);
267bubuko.com,布布扣begin
268bubuko.com,布布扣  if FTitle = ‘‘ then
269bubuko.com,布布扣    begin
270bubuko.com,布布扣      Writeln(FDescription + ‘ can‘‘ t play track ‘, aTrack, ‘, no CD inserted‘);
271bubuko.com,布布扣    end
272bubuko.com,布布扣  else
273bubuko.com,布布扣    begin
274bubuko.com,布布扣      FCurrentTrack := aTrack;
275bubuko.com,布布扣      Writeln(FDescription + ‘ playing track ‘, FCurrentTrack);
276bubuko.com,布布扣    end;
277bubuko.com,布布扣end;
278bubuko.com,布布扣
279bubuko.com,布布扣procedure TCDPlayer.Stop;
280bubuko.com,布布扣begin
281bubuko.com,布布扣  FCurrentTrack := 0;
282bubuko.com,布布扣  Writeln(FDescription + ‘ stopped‘);
283bubuko.com,布布扣end;
284bubuko.com,布布扣
285bubuko.com,布布扣function TCDPlayer.ToString: String;
286bubuko.com,布布扣begin
287bubuko.com,布布扣  Result := FDescription;
288bubuko.com,布布扣end;
289bubuko.com,布布扣
290bubuko.com,布布扣{ TDVDPlayer }
291bubuko.com,布布扣
292bubuko.com,布布扣constructor TDVDPlayer.Create(aDescription: String; aAmplifier: TAmplifier);
293bubuko.com,布布扣begin
294bubuko.com,布布扣  FDescription := aDescription;
295bubuko.com,布布扣  FAmplifier   := aAmplifier;
296bubuko.com,布布扣end;
297bubuko.com,布布扣
298bubuko.com,布布扣procedure TDVDPlayer.Eject;
299bubuko.com,布布扣begin
300bubuko.com,布布扣  Writeln(FDescription + ‘ eject‘);
301bubuko.com,布布扣end;
302bubuko.com,布布扣
303bubuko.com,布布扣procedure TDVDPlayer.Off;
304bubuko.com,布布扣begin
305bubuko.com,布布扣  Writeln(FDescription + ‘ off‘);
306bubuko.com,布布扣end;
307bubuko.com,布布扣
308bubuko.com,布布扣procedure TDVDPlayer.Open;
309bubuko.com,布布扣begin
310bubuko.com,布布扣  Writeln(FDescription + ‘ on‘);
311bubuko.com,布布扣end;
312bubuko.com,布布扣
313bubuko.com,布布扣procedure TDVDPlayer.Pause;
314bubuko.com,布布扣begin
315bubuko.com,布布扣  Writeln(FDescription + ‘ paused <‘ + FMovie + ‘>‘);
316bubuko.com,布布扣end;
317bubuko.com,布布扣
318bubuko.com,布布扣procedure TDVDPlayer.Play(aTrack: Integer);
319bubuko.com,布布扣begin
320bubuko.com,布布扣  if FMovie = ‘‘ then
321bubuko.com,布布扣    begin
322bubuko.com,布布扣      Writeln(FDescription + ‘ can‘‘ t play track ‘, aTrack, ‘, no DVD inserted‘);
323bubuko.com,布布扣    end
324bubuko.com,布布扣  else
325bubuko.com,布布扣    begin
326bubuko.com,布布扣      FCurrentTrack := aTrack;
327bubuko.com,布布扣      Writeln(FDescription + ‘ playing track ‘, FCurrentTrack, ‘ of <‘, FMovie, ‘>‘);
328bubuko.com,布布扣    end;
329bubuko.com,布布扣end;
330bubuko.com,布布扣
331bubuko.com,布布扣procedure TDVDPlayer.Play(aMovie: String);
332bubuko.com,布布扣begin
333bubuko.com,布布扣  FMovie := aMovie;
334bubuko.com,布布扣  FCurrentTrack := 0;
335bubuko.com,布布扣  Writeln(FDescription + ‘ playing <‘ + FMovie + ‘>‘);
336bubuko.com,布布扣end;
337bubuko.com,布布扣
338bubuko.com,布布扣procedure TDVDPlayer.SetSurroundAudio;
339bubuko.com,布布扣begin
340bubuko.com,布布扣  Writeln(FDescription + ‘ set surround audio‘);
341bubuko.com,布布扣end;
342bubuko.com,布布扣
343bubuko.com,布布扣procedure TDVDPlayer.SetTwoChannelAudio;
344bubuko.com,布布扣begin
345bubuko.com,布布扣  Writeln(FDescription + ‘ set two channel audio‘);
346bubuko.com,布布扣end;
347bubuko.com,布布扣
348bubuko.com,布布扣procedure TDVDPlayer.Stop;
349bubuko.com,布布扣begin
350bubuko.com,布布扣  FCurrentTrack := 0;
351bubuko.com,布布扣  Writeln(FDescription + ‘ <‘ + FMovie + ‘> stopped‘);
352bubuko.com,布布扣end;
353bubuko.com,布布扣
354bubuko.com,布布扣function TDVDPlayer.ToString: String;
355bubuko.com,布布扣begin
356bubuko.com,布布扣  Result := FDescription;
357bubuko.com,布布扣end;
358bubuko.com,布布扣
359bubuko.com,布布扣{ TScreen }
360bubuko.com,布布扣
361bubuko.com,布布扣constructor TScreen.Create(aDescription: String);
362bubuko.com,布布扣begin
363bubuko.com,布布扣  FDescription := aDescription;
364bubuko.com,布布扣end;
365bubuko.com,布布扣
366bubuko.com,布布扣procedure TScreen.Down;
367bubuko.com,布布扣begin
368bubuko.com,布布扣  Writeln(FDescription, ‘ going down‘);
369bubuko.com,布布扣end;
370bubuko.com,布布扣
371bubuko.com,布布扣function TScreen.ToString: String;
372bubuko.com,布布扣begin
373bubuko.com,布布扣  Result := FDescription;
374bubuko.com,布布扣end;
375bubuko.com,布布扣
376bubuko.com,布布扣procedure TScreen.UP;
377bubuko.com,布布扣begin
378bubuko.com,布布扣  Writeln(FDescription, ‘ going up‘);
379bubuko.com,布布扣end;
380bubuko.com,布布扣
381bubuko.com,布布扣{ TPopcornPopper }
382bubuko.com,布布扣
383bubuko.com,布布扣constructor TPopcornPopper.Create(aDescription: String);
384bubuko.com,布布扣begin
385bubuko.com,布布扣  FDescription := aDescription;
386bubuko.com,布布扣end;
387bubuko.com,布布扣
388bubuko.com,布布扣procedure TPopcornPopper.Off;
389bubuko.com,布布扣begin
390bubuko.com,布布扣  Writeln(FDescription, ‘ off‘);
391bubuko.com,布布扣end;
392bubuko.com,布布扣
393bubuko.com,布布扣procedure TPopcornPopper.Open;
394bubuko.com,布布扣begin
395bubuko.com,布布扣  Writeln(FDescription, ‘ on‘);
396bubuko.com,布布扣end;
397bubuko.com,布布扣
398bubuko.com,布布扣procedure TPopcornPopper.Pop;
399bubuko.com,布布扣begin
400bubuko.com,布布扣  Writeln(FDescription, ‘ popping popcorn!‘);
401bubuko.com,布布扣end;
402bubuko.com,布布扣
403bubuko.com,布布扣function TPopcornPopper.ToString: String;
404bubuko.com,布布扣begin
405bubuko.com,布布扣  Result := FDescription;
406bubuko.com,布布扣end;
407bubuko.com,布布扣
408bubuko.com,布布扣{ TTheaterLights }
409bubuko.com,布布扣
410bubuko.com,布布扣constructor TTheaterLights.Create(aDescription: String);
411bubuko.com,布布扣begin
412bubuko.com,布布扣  FDescription := aDescription;
413bubuko.com,布布扣end;
414bubuko.com,布布扣
415bubuko.com,布布扣procedure TTheaterLights.Dim(aLevel: Integer);
416bubuko.com,布布扣begin
417bubuko.com,布布扣  Writeln(FDescription, ‘ dimming to ‘, aLevel, ‘%‘);
418bubuko.com,布布扣end;
419bubuko.com,布布扣
420bubuko.com,布布扣procedure TTheaterLights.Off;
421bubuko.com,布布扣begin
422bubuko.com,布布扣  Writeln(FDescription, ‘ off‘);
423bubuko.com,布布扣end;
424bubuko.com,布布扣
425bubuko.com,布布扣procedure TTheaterLights.Open;
426bubuko.com,布布扣begin
427bubuko.com,布布扣  Writeln(FDescription, ‘ on‘);
428bubuko.com,布布扣end;
429bubuko.com,布布扣
430bubuko.com,布布扣function TTheaterLights.ToString: String;
431bubuko.com,布布扣begin
432bubuko.com,布布扣  Result := FDescription;
433bubuko.com,布布扣end;
434bubuko.com,布布扣
435bubuko.com,布布扣{ TProjector }
436bubuko.com,布布扣
437bubuko.com,布布扣constructor TProjector.Create(aDescription: String; aDVD: TDVDPlayer);
438bubuko.com,布布扣begin
439bubuko.com,布布扣  FDescription := aDescription;
440bubuko.com,布布扣  FDVD := aDVD;
441bubuko.com,布布扣end;
442bubuko.com,布布扣
443bubuko.com,布布扣procedure TProjector.Off;
444bubuko.com,布布扣begin
445bubuko.com,布布扣  Writeln(FDescription, ‘ off‘);
446bubuko.com,布布扣end;
447bubuko.com,布布扣
448bubuko.com,布布扣procedure TProjector.Open;
449bubuko.com,布布扣begin
450bubuko.com,布布扣  Writeln(FDescription, ‘ on‘);
451bubuko.com,布布扣end;
452bubuko.com,布布扣
453bubuko.com,布布扣function TProjector.ToString: String;
454bubuko.com,布布扣begin
455bubuko.com,布布扣  Result := FDescription;
456bubuko.com,布布扣end;
457bubuko.com,布布扣
458bubuko.com,布布扣procedure TProjector.TVMode;
459bubuko.com,布布扣begin
460bubuko.com,布布扣  Writeln(FDescription + ‘ in tv mode (4x3 aspect ratio)‘);
461bubuko.com,布布扣end;
462bubuko.com,布布扣
463bubuko.com,布布扣procedure TProjector.WideScreenMode;
464bubuko.com,布布扣begin
465bubuko.com,布布扣  Writeln(FDescription + ‘ in widescreen mode (16x9 aspect ratio)‘);
466bubuko.com,布布扣end;
467bubuko.com,布布扣
468bubuko.com,布布扣end.

 

 

bubuko.com,布布扣
  1bubuko.com,布布扣unit uFacadeObject;
  2bubuko.com,布布扣
  3bubuko.com,布布扣interface
  4bubuko.com,布布扣
  5bubuko.com,布布扣uses
  6bubuko.com,布布扣  uSubObject;
  7bubuko.com,布布扣
  8bubuko.com,布布扣type
  9bubuko.com,布布扣  THomeTheaterFacade = class(TObject)
 10bubuko.com,布布扣  private
 11bubuko.com,布布扣    FAmp: TAmplifier;
 12bubuko.com,布布扣    FTuner: TTuner;
 13bubuko.com,布布扣    FDVD: TDVDPlayer;
 14bubuko.com,布布扣    FCD: TCDPlayer;
 15bubuko.com,布布扣    FProjector: TProjector;
 16bubuko.com,布布扣    FLights: TTheaterLights;
 17bubuko.com,布布扣    FScreen: TScreen;
 18bubuko.com,布布扣    FPopper: TPopcornPopper;
 19bubuko.com,布布扣  public
 20bubuko.com,布布扣    constructor Create(aAmp   : TAmplifier;
 21bubuko.com,布布扣                       aTuner : TTuner;
 22bubuko.com,布布扣                       aDVD   : TDVDPlayer;
 23bubuko.com,布布扣                       aCD    : TCDPlayer;
 24bubuko.com,布布扣                       aProjector: TProjector;
 25bubuko.com,布布扣                       aLights: TTheaterLights;
 26bubuko.com,布布扣                       aScreen: TScreen;
 27bubuko.com,布布扣                       aPopper: TPopcornPopper);
 28bubuko.com,布布扣    procedure WatchMovie(aMovie: String);
 29bubuko.com,布布扣    procedure EndMovie;
 30bubuko.com,布布扣    procedure ListenToCD(CDTitle: String);
 31bubuko.com,布布扣    procedure EndCD;
 32bubuko.com,布布扣    procedure ListenToRadio(aFrequency: Double);
 33bubuko.com,布布扣    procedure EndRadio;
 34bubuko.com,布布扣  end;
 35bubuko.com,布布扣
 36bubuko.com,布布扣implementation
 37bubuko.com,布布扣
 38bubuko.com,布布扣{ THomeTheaterFacade }
 39bubuko.com,布布扣
 40bubuko.com,布布扣constructor THomeTheaterFacade.Create(aAmp   : TAmplifier;
 41bubuko.com,布布扣                                      aTuner : TTuner;
 42bubuko.com,布布扣                                      aDVD   : TDVDPlayer;
 43bubuko.com,布布扣                                      aCD    : TCDPlayer;
 44bubuko.com,布布扣                                      aProjector: TProjector;
 45bubuko.com,布布扣                                      aLights: TTheaterLights;
 46bubuko.com,布布扣                                      aScreen: TScreen;
 47bubuko.com,布布扣                                      aPopper: TPopcornPopper);
 48bubuko.com,布布扣begin
 49bubuko.com,布布扣  FAmp    := aAmp;
 50bubuko.com,布布扣  FTuner  := aTuner;
 51bubuko.com,布布扣  FDVD    := aDVD;
 52bubuko.com,布布扣  FCD     := aCD;
 53bubuko.com,布布扣  FProjector := aProjector;
 54bubuko.com,布布扣  FLights := aLights;
 55bubuko.com,布布扣  FScreen := aScreen;
 56bubuko.com,布布扣  FPopper := aPopper;
 57bubuko.com,布布扣end;
 58bubuko.com,布布扣
 59bubuko.com,布布扣procedure THomeTheaterFacade.EndCD;
 60bubuko.com,布布扣begin
 61bubuko.com,布布扣  Writeln(‘Shutting down CDbubuko.com,布布扣‘);
 62bubuko.com,布布扣  FAmp.Off;
 63bubuko.com,布布扣  FAmp.SetCD(FCD);
 64bubuko.com,布布扣  FCD.Eject;
 65bubuko.com,布布扣  FCD.Off;
 66bubuko.com,布布扣end;
 67bubuko.com,布布扣
 68bubuko.com,布布扣procedure THomeTheaterFacade.EndMovie;
 69bubuko.com,布布扣begin
 70bubuko.com,布布扣  Writeln(‘Shutting movie theater downbubuko.com,布布扣‘);
 71bubuko.com,布布扣  FPopper.Off;
 72bubuko.com,布布扣  FLights.Open;
 73bubuko.com,布布扣  FScreen.UP;
 74bubuko.com,布布扣  FProjector.Off;
 75bubuko.com,布布扣  FAmp.Off;
 76bubuko.com,布布扣  FDVD.Stop;
 77bubuko.com,布布扣  FDVD.Eject;
 78bubuko.com,布布扣  FDVD.Off;
 79bubuko.com,布布扣end;
 80bubuko.com,布布扣
 81bubuko.com,布布扣procedure THomeTheaterFacade.EndRadio;
 82bubuko.com,布布扣begin
 83bubuko.com,布布扣  Writeln(‘Shutting down the tunerbubuko.com,布布扣‘);
 84bubuko.com,布布扣  FTuner.Off;
 85bubuko.com,布布扣  FAmp.Off;
 86bubuko.com,布布扣end;
 87bubuko.com,布布扣
 88bubuko.com,布布扣procedure THomeTheaterFacade.ListenToCD(CDTitle: String);
 89bubuko.com,布布扣begin
 90bubuko.com,布布扣  Writeln(‘Get ready for an audiopile experencebubuko.com,布布扣‘);
 91bubuko.com,布布扣  FLights.Open;
 92bubuko.com,布布扣  FAmp.Open;
 93bubuko.com,布布扣  FAmp.SetVolume(5);
 94bubuko.com,布布扣  FAmp.SetCD(FCD);
 95bubuko.com,布布扣  FAmp.SetStereoSound;
 96bubuko.com,布布扣  FCD.Open;
 97bubuko.com,布布扣  FCD.Play(CDTitle);
 98bubuko.com,布布扣end;
 99bubuko.com,布布扣
100bubuko.com,布布扣procedure THomeTheaterFacade.ListenToRadio(aFrequency: Double);
101bubuko.com,布布扣begin
102bubuko.com,布布扣  Writeln(‘Tuning in the airwavesbubuko.com,布布扣‘);
103bubuko.com,布布扣  FTuner.Open;
104bubuko.com,布布扣  FTuner.SetFrequency(aFrequency);
105bubuko.com,布布扣  FAmp.Open;
106bubuko.com,布布扣  FAmp.SetVolume(5);
107bubuko.com,布布扣  FAmp.SetTuner(FTuner);
108bubuko.com,布布扣end;
109bubuko.com,布布扣
110bubuko.com,布布扣procedure THomeTheaterFacade.WatchMovie(aMovie: String);
111bubuko.com,布布扣begin
112bubuko.com,布布扣  Writeln(‘Get ready to watch a moviebubuko.com,布布扣‘);
113bubuko.com,布布扣  FPopper.Open;
114bubuko.com,布布扣  FPopper.Pop;
115bubuko.com,布布扣  FLights.Dim(10);
116bubuko.com,布布扣  FScreen.Down;
117bubuko.com,布布扣  FProjector.Open;
118bubuko.com,布布扣  FProjector.WideScreenMode;
119bubuko.com,布布扣  FAmp.Open;
120bubuko.com,布布扣  FAmp.SetDVD(FDVD);
121bubuko.com,布布扣  FAmp.SetSurroundSound;
122bubuko.com,布布扣  FAmp.SetVolume(5);
123bubuko.com,布布扣  FDVD.Open;
124bubuko.com,布布扣  FDVD.Play(aMovie);
125bubuko.com,布布扣end;
126bubuko.com,布布扣
127bubuko.com,布布扣end.

 

 

bubuko.com,布布扣
 1bubuko.com,布布扣program pHomeTheaterTestDrive;
 2bubuko.com,布布扣
 3bubuko.com,布布扣{$APPTYPE CONSOLE}
 4bubuko.com,布布扣
 5bubuko.com,布布扣uses
 6bubuko.com,布布扣  SysUtils,
 7bubuko.com,布布扣  uFacadeObject in ‘uFacadeObject.pas‘,
 8bubuko.com,布布扣  uSubObject in ‘uSubObject.pas‘;
 9bubuko.com,布布扣
10bubuko.com,布布扣var
11bubuko.com,布布扣  Amp   : TAmplifier;
12bubuko.com,布布扣  Tuner : TTuner;
13bubuko.com,布布扣  DVD   : TDVDPlayer;
14bubuko.com,布布扣  CD    : TCDPlayer;
15bubuko.com,布布扣  Projector: TProjector;
16bubuko.com,布布扣  Lights: TTheaterLights;
17bubuko.com,布布扣  Screen: TScreen;
18bubuko.com,布布扣  Popper: TPopcornPopper;
19bubuko.com,布布扣
20bubuko.com,布布扣  HomeTheater: THomeTheaterFacade;
21bubuko.com,布布扣   
22bubuko.com,布布扣begin
23bubuko.com,布布扣  Amp    := TAmplifier.Create(‘Top-O-Line Amplifier‘);
24bubuko.com,布布扣  Tuner  := TTuner.Create(‘Top-O-Line AM/FM Tuner‘, Amp);
25bubuko.com,布布扣  DVD    := TDVDPlayer.Create(‘Top-O-Line DVD Player‘, Amp);
26bubuko.com,布布扣  CD     := TCDPlayer.Create(‘Top-O-Line CD Player‘, Amp);
27bubuko.com,布布扣  Projector := TProjector.Create(‘Top-O-Line Projector‘, DVD);
28bubuko.com,布布扣  Lights := TTheaterLights.Create(‘Theater Ceiling Lights‘);
29bubuko.com,布布扣  Screen := TScreen.Create(‘Theater Screen‘);
30bubuko.com,布布扣  Popper := TPopcornPopper.Create(‘Popcorn Popper‘);
31bubuko.com,布布扣
32bubuko.com,布布扣  HomeTheater := THomeTheaterFacade.Create(Amp, Tuner, DVD, CD, Projector,
33bubuko.com,布布扣                                           Lights, Screen, Popper);
34bubuko.com,布布扣
35bubuko.com,布布扣  HomeTheater.WatchMovie(‘Raiders of the Lost Ark‘);
36bubuko.com,布布扣  Writeln;
37bubuko.com,布布扣  HomeTheater.EndMovie;
38bubuko.com,布布扣
39bubuko.com,布布扣  FreeAndNil(Amp);
40bubuko.com,布布扣  FreeAndNil(Tuner);
41bubuko.com,布布扣  FreeAndNil(DVD);
42bubuko.com,布布扣  FreeAndNil(CD);
43bubuko.com,布布扣  FreeAndNil(Projector);
44bubuko.com,布布扣  FreeAndNil(Lights);
45bubuko.com,布布扣  FreeAndNil(Screen);
46bubuko.com,布布扣  FreeAndNil(Popper);
47bubuko.com,布布扣  FreeAndNil(HomeTheater);
48bubuko.com,布布扣
49bubuko.com,布布扣  Readln;
50bubuko.com,布布扣end.

 

运行结果:

bubuko.com,布布扣

 

 
 

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---门面模式之HomeTheater[转]

标签:des   blog   http   io   ar   os   for   sp   div   

原文地址:http://www.cnblogs.com/0x2D-0x22/p/4076270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!