当前位置: 首页 > news >正文

网站之家查询一键优化表格

网站之家查询,一键优化表格,建行个人网上银行登录入口官网,深圳市住房和建设局薛峰简历课程目标 理解松耦合设计思想掌握面向对象设计原则掌握重构技法改善设计掌握GOF核心设计模式 什么是设计模式 目标#xff1a;复用#xff0c;以不变应万变 GOF设计模式 从面向对象谈起 深入理解面向对象 向下#xff1a;深入理解三大面向对象机制 封装#xff1a;隐藏…课程目标 理解松耦合设计思想掌握面向对象设计原则掌握重构技法改善设计掌握GOF核心设计模式 什么是设计模式 目标复用以不变应万变 GOF设计模式 从面向对象谈起 深入理解面向对象 向下深入理解三大面向对象机制 封装隐藏内部实现继承复用现有代码多态改写对象行为 向上深刻把握面向对象机制所带来的抽象意义理解如何使用这些机制来表达现实世界掌握什么是“好的面向对象设计” 软件设计固有的复杂性 软件设计复杂的根本原因 变化 客户需求的变化技术平台的变化开发团队的变化市场环境的变化… 如何解决复杂性 分解 人们面对复杂性有一个常见的做法即分而治之将大问题分解为多个小问题将复杂问题分解为多个简单问题。 抽象 更高层次来讲人们处理复杂性有一个通用的技术即抽象。由于不能掌握全部的复杂对象我们选择忽视它的非本质细节而去处理泛化和理想化了的对象模型。 结构化 VS. 面向对象 分解将问题具体化 /* * file: Shape1.h */class Point { public:int x;int y; };class Line { public:Point start;Point end;Line(const Point start, const Point end) {this-start start;this-end end;} };class Rect { public:Point leftUp;int width;int height;Rect(const Point leftUp, int width, int height) {this-leftUp leftUp;this-width width;this-height height;} };// 增加 // 新图形 class Circle {};/* * file: MainForm1.cpp */class MainForm : public Form { private:Point p1;Point p2;vectorLine lineVector; // 直线vectorRect rectVector; // 矩形// 改变// 增加一个vector专门存储圆vectorCircle circleVector; // 圆public:MainForm() {// ...} protected:virtual void OnMouseDown(const MouseEventArgs e);virtual void OnMouseUp(const MouseEventArgs e);virtual void OnPaint(const PaintEventArgs e); };void MainForm::OnMouseDown(const MouseEventArgs e) {p1.x e.X;p1.y e.Y;// ...Form::OnMouseDown(e); }void MainForm::OnMouseUp(const MouseEventArgs e) {p2.x e.X;p2.y e.Y;if (rdoLine.Checked) { // 如果是要画线Line line(p1, p2);lineVector.push_back(line);}else if (rdoRect.Checked){ // 如果是要画矩形int width abs(p2.x - p1.x);int height abs(p2.y - p1.y);Rect rect(p1, width, height);rectVector.push_back(rect);}// 改变else if (...) { // 如果是要画圆// ...circleVector.push_back(circle);}// ...this-Refresh();Form::OnMouseUp(e); }void MainForm::OnPaint(const PaintEventArgs e) {// 针对直线for (int i 0; i lineVector.size(); i) {e.Graphics.DrawLine(Pens.Red,lineVector[i].start.x, lineVector[i].start.y,lineVector[i].end.x,lineVector[i].end.y);}// 针对矩形for (int i 0; i rectVector.size(); i) {e.Graphics.DrawRectangle(Pens.Red,rectVector[i].leftUp,rectVector[i].width,rectVector[i].height);}// 改变// 针对圆形for (int i 0; i circleVector.size(); i) {e.Graphics.DrawCircle(Pens.Red,circleVector[i]);}// ...Form::OnPaint(e); }抽象运用面向对象的继承与多态特性使用统一的处理方式来提高代码的复用性 /* * file: Shape2.h */// 基类 class Shape { public:// 虚函数由子类overridevirtual void Draw(const Graphics g) 0;// 析构函数也要是virtualvirtual ~Shape() { } };class Point { public:int x;int y; };// 派生类继承Shape class Line: public Shape { public:Point start;Point end;Line(const Point start, const Point end) {this-start start;this-end end;}// 实现自己的Draw负责画自己virtual void Draw(const Graphics g) {g.DrawLine(Pens.Red, start.x, start.y, end.x, end.y);} };// 派生类继承Shape class Rect: public Shape { public:Point leftUp;int width;int height;Rect(const Point leftUp, int width, int height) {this-leftUp leftUp;this-width width;this-height height;}// 实现自己的Draw负责画自己virtual void Draw(const Graphics g){g.DrawRectangle(Pens.Red,leftUp, width, height);} };//增加 class Circle : public Shape{ public://实现自己的Draw负责画自己virtual void Draw(const Graphics g) {g.DrawCircle(Pens.Red,...);} };/* * file: MainForm2.cpp */class MainForm : public Form { private:Point p1;Point p2;// 针对所有形状注意这里是基类指针Shape*而非基类对象// 目的是利用多态用父类指针指向子类对象vector中可以存储所有子类对象的指针vectorShape* shapeVector;public:MainForm() {//...} protected:virtual void OnMouseDown(const MouseEventArgs e);virtual void OnMouseUp(const MouseEventArgs e);virtual void OnPaint(const PaintEventArgs e); };void MainForm::OnMouseDown(const MouseEventArgs e) {p1.x e.X;p1.y e.Y;// ...Form::OnMouseDown(e); }void MainForm::OnMouseUp(const MouseEventArgs e) {p2.x e.X;p2.y e.Y;if (rdoLine.Checked) {shapeVector.push_back(new Line(p1,p2)); // 将Line*指针放入shapeVector中}else if (rdoRect.Checked) {int width abs(p2.x - p1.x);int height abs(p2.y - p1.y);shapeVector.push_back(new Rect(p1, width, height)); // 将Rect*指针放入shapeVector中}// 改变else if (...){// ...shapeVector.push_back(circle); // 将Circle*指针放入shapeVector中}// ...this-Refresh();Form::OnMouseUp(e); }void MainForm::OnPaint(const PaintEventArgs e) {// 针对所有形状for (int i 0; i shapeVector.size(); i) {shapeVector[i]-Draw(e.Graphics); //多态调用各负其责}// ...Form::OnPaint(e); }软件设计的目标 什么是好的软件设计软件设计的金科玉律复用
http://www.dnsts.com.cn/news/130721.html

相关文章:

  • 网站设计流程电话微站直播平台
  • 做的网站如何放在电脑上百度网盘搜索引擎入口哪里
  • 付费阅读下载网站开发住房和城乡建设部信息中心官网
  • 如何建设交流网站的论文网站编程教学
  • 2020最有效的网络推广方式东莞seo优化排名
  • 外贸建站 服务器青海省建设厅网站姚宽一
  • 商务网站开发流程有三个阶段网站登录页一般做多大尺寸
  • 电子商务网站建设期中wordpress 数据库配置错误
  • 小米手表网站中国建设银行网站用户
  • 网站地图制作网站建设公司怎么运营
  • 无锡专业网站建设企业官网网页
  • 怎样做服装厂的企业网站模版策划书用什么软件做
  • 网站怎么做的有创意哈尔滨网站建设30t
  • 宁波网站排名公司优购物官方网站购物
  • 普陀酒店网站建设扬州网站开发公司电话
  • 网站百度推广wordpress 花生壳
  • 山西智能建站系统价格佛山网站开发公司
  • 企业为什么做平台网站开发网页的工具有哪些
  • 网站增加流量茶的网站制作
  • 南宁建站服务网页设计培训班招生
  • 有什么好的网站推荐一下免费网站设计神器
  • 工信部的网站备案做搬家服务网站问卷调查结果
  • 东莞人才信息网官网电商seo引流
  • 网站建设忄金手指稳定大连网站制作师
  • 律师网站深圳网站设计淘宝网页设计流程图
  • 巩义郑州网站建设在线免费看1921完整版
  • 商城网站管理系统郑州网站设计推荐
  • 济宁建设局官方网站单纯做网站的公司
  • 网站建设期间工作seo怎么优化关键词排名
  • 怎样做网站jsp怎么做网页版调查问卷