最全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#源代码高亮着色类(C/S框架网开源) C#.Net OOP系列之接口设计及策略应用实战 C#网络版中国象棋游戏源代码(VS2005) 分享几个C#编写的类似Window Explorer源代码 [原创]C# UDP穿越NAT,UDP打洞,UDP Hole Punching源代码(1) [原创]C# UDP穿越NAT,UDP打洞,UDP Hole Punching源代码(2) C#贪吃蛇小游戏的源代码 C# ImageListView控件下载(源代码) [原创]C#键盘勾子(Hook),屏蔽键盘活动.(源代码下载) 最全C#OOP面向对象程序设计源代码(Car.cs) C#面向对象设计(OOP)之对象多态(Polymorphic) OOP设计思想之教学设备系统.附UML图.(一) Asp.Net三层体系结构应用实例(附C#源代码) C#.Net组件开发(高级篇) - 设计时在窗体设计器文件内生成组件的代码 C#.Net组件开发(高级篇) - 使用自定义TypeConverter生成设计时代码
其它资料:
什么是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内容管理系统 | |