最全C#OOP设计思想之汽车模型源代码

  最全C#OOP设计思想之汽车模型源代码

最全C#OOP设计思想之汽车模型源代码


学习OOP编程思想,从这里开始,参考代码:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Tech2007.CarLibrary;

namespace TestProject
{
   public partial class frmTestCar : Form
   {
      public frmTestCar()
      {
         InitializeComponent();
      }
      
      /// <summary>
      /// 消息跟踪记录
      /// </summary>
      private ITraceLog Trace
      {
         get { return new TraceLogListBox(this.listBox1); }
      }
      
      private void button1_Click(object sender, EventArgs e)
      {
         //**********************************************************
         //学习内容:
         // 1.工厂模式MakeCar方法,跟据不同参数制造汽车。
         // 2.SetTraceLog方法,Car基类组合一个ITraceLog接口.当Car内部发生任何事情可通过ITraceLog展现。
         // 3.对象多态。如定义Car变量,而CarFactory.MakeCar(CarType.Benz250)返回CarBenz250对象。
         // 但CarBenz250对象必需继承自Car基类,否则编译品无法通过。
         // 4.用工厂模式MakeCar两种方法制造汽车。
         //**********************************************************
         //由CarType制造一辆Benz250汽车
         Car car = CarFactory.MakeCar(CarType.Benz250);
         car.SetTraceLog(Trace);
         car.ShowCarInfo();
         
         //由对象类型制造一辆CarBMW600M汽车
         Car car1 = CarFactory.MakeCar(typeof(CarBMW600M).FullName);
         car1.SetTraceLog(Trace);
         car1.ShowCarInfo();
      }
      
      private void button2_Click(object sender, EventArgs e)
      {
         //**********************************************************
         //学习内容:
         // 1.重载对象的Equals方法。Car.Equals为自己定义方法。
         //**********************************************************
         Car car = CarFactory.MakeCar(CarType.Benz250);
         Car car1 = CarFactory.MakeCar(typeof(CarBMW600M).FullName);
         
         ITraceLog log = Trace;
         
         if (car.Equals(car1))
         log.ShowMessage("汽车相等.");
         else
         log.ShowMessage("不同类型汽车");
      }
      
      private void button3_Click(object sender, EventArgs e)
      {
         //**********************************************************
         //学习内容:
         // 1.测试对象多态行为。
         // 2.汽车维修工厂的Repair方法仅提供Car参数,为什么可维修Mazida,BMW200X。
         //**********************************************************
         Car car = CarFactory.MakeCar(CarType.Mazida); //制造一辆马自达
         Car car1 = CarFactory.MakeCar(typeof(CarBMW200X).FullName); //制造一辆宝马200x
         
         CarSuperMaintainStation m = new CarSuperMaintainStation(this.Trace);
         
         //调用汽车维修工厂的Repair方法。
         //思考:为什么Repair方法可以维修所有类型为Car的汽车?
         // 为什么可以维修Mazida,BMW200X的汽车?
         m.Repair(car);
         m.Repair(car1);
      }
      
      private void button4_Click(object sender, EventArgs e)
      {
         //**********************************************************
         //学习内容:
         // 1.测试Override的方法
         //**********************************************************
         
         //Car基类有OpenDoor方法.多数汽车的开门方式是往左侧/右侧开门
         Car car = new CarBMW600M(); //但BMW600系列是向上弹开车门
         car.SetTraceLog(this.Trace);
         car.OpenDoor();
      }
      



C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

C#OOP设计思想汽车模型源代码
C#OOP面向对象程序设计源代码(Car.cs)
OOP设计思想教学设备系统.附UML图.(一)
C#面向对象设计(OOP)对象多态(Polymorphic)
C#.Net OOP系列接口设计及策略应用实战
C#.NET史上字符串加密/解密/数字签名工具(CryptoHelper.cs)
C# 对象多态性(OOP基础)
C/S框架后台数据更新模型ORM自动生成SQL基本原理
Asp.Net三层体系结构应用实例(附C#源代码
无线监控系统二-------C#实现
C#网络版中国象棋游戏源代码(VS2005)
C#源代码安全缺陷与提高源代码质量解决方案
Winform通用框架(C#.NET)权限管理系统详细设计|C/S框架网
WPF炫,WCF实用
Winform+DevExpress框架独立图片存储解决方案|C/S框架网
软件开发与设计 - TMS - 物流运输管理系统(天津丰源汽车数据库设计
C#贪吃蛇小游戏的源代码
C#源代码安全缺陷与提高源代码质量解决方案-WCF服务配置安全
软件开发与设计 - EMS-电子商城系统-[电子商务]汽车零件销售网数据库表结构
C/S自动升级软件下载升级包策略设计|C/S框架网