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

长春网站推广网诚传媒wordpress有什么缺点

长春网站推广网诚传媒,wordpress有什么缺点,承德在线,湖南专业建站按效果付贿课程目标 理解松耦合设计思想掌握面向对象设计原则掌握重构技法改善设计掌握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.w-s-a.com/news/630547/

相关文章:

  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些
  • 网站建站什么目录桂林网站建设内容
  • 光明新区城市建设局网站长沙营销型网站制作费用
  • 网站建设制度制定wordpress主题哥
  • 门户网站的种类php网站开发实训心得
  • 流程图制作网页网络优化seo
  • 个人公益网站怎么制作wordpress flat theme
  • 做营销型网站的公司篇高端网站愿建设
  • 五莲网站建设维护推广凡科做网站的方法
  • 山东省住房建设厅网站首页网站文章更新怎么通知搜索引擎
  • 商务网站的可行性分析包括大流量网站 优化
  • 推广网站有效的方法网站数据统计
  • 自建视频网站WordPress数据库添加管理员
  • 新民电商网站建设价格咨询网站建设高效解决之道
  • 做网站需要哪些步骤网站设计介绍