最全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();
}
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#OOP面向对象程序设计源代码(Car.cs)
OOP面向对象编程(1)图说OOP基础-C/S开发框架
C# OOP编程 模拟做早餐探索同步异步机制-C/S开发框架
C#.NET史上最全字符串加密/解密/数字签名工具(CryptoHelper.cs)
OOP设计思想之教学设备系统.附UML图.(一)
C#面向对象设计(OOP)之对象多态(Polymorphic)
C# 对象多态性(OOP基础)
C#.Net OOP系列之接口设计及策略应用实战
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
C/S架构软件开发平台 | 旗舰版V6.0开发者技能要求|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
WebApi框架 | AOP|C/S开发框架
C# .NET 入门概念与知识点总结|C/S开发框架
中国国家统计局省市区划代码数据库下载 - 2021年最新- Excel,SQLLite数据库
2022年最新数据:中国国家省市区行政区域数据库下载(Excel/SQLLite)|C/S开发框架
最全C#OOP面向对象程序设计源代码(Car.cs)
OOP面向对象编程(1)图说OOP基础-C/S开发框架
C# OOP编程 模拟做早餐探索同步异步机制-C/S开发框架
C#.NET史上最全字符串加密/解密/数字签名工具(CryptoHelper.cs)
OOP设计思想之教学设备系统.附UML图.(一)
C#面向对象设计(OOP)之对象多态(Polymorphic)
C# 对象多态性(OOP基础)
C#.Net OOP系列之接口设计及策略应用实战
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
C/S架构软件开发平台 | 旗舰版V6.0开发者技能要求|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
WebApi框架 | AOP|C/S开发框架
C# .NET 入门概念与知识点总结|C/S开发框架
中国国家统计局省市区划代码数据库下载 - 2021年最新- Excel,SQLLite数据库
2022年最新数据:中国国家省市区行政区域数据库下载(Excel/SQLLite)|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
