欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    程序设计思想.ppt

    • 资源ID:259530       资源大小:1.68MB        全文页数:46页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    程序设计思想.ppt

    程序设计思想,关于程序设计,设计一个程序的步骤,1、分析问题,2、设计方案,关于程序设计,程序设计语言的意义,if(#$%)%,关于程序设计,程序设计要面对的问题,技术问题,目标复杂度和规模的增长,需求的变化,程序设计思想,从C+语法的改变看程序设计思想的演化,加强了类型的匹配检查,?,强制使用函数原型,?,允许变量的自由定义,?,增加了函数重载、命名空间,?,关于程序设计思想,面向过程 vs.面向对象,面向过程的程序设计,面向过程程序设计的核心,确定实现目标所需要的过程,采用能够找到的最好的算法,面向过程的程序设计,模块化程序设计,面向过程的程序设计,模块化程序设计,模块化的目的是什么?,面向过程的程序设计,模块化程序设计,模块应该如何划分?,面向对象的程序设计,对象的意义,考虑问题的方法,工业化、标准化,面向对象的程序设计,面向对象思想的核心概念,封装,继承,多态,面向对象的程序设计,C+中的多态实现,虚表,对象,成员函数,面向对象的程序设计,OO原则开放-封闭原则(OCP),软件实体应该可以扩展(对扩展开放),但是不可修改(对修改关闭);,面向对象的程序设计,OO原则开放-封闭原则(OCP)社会发展中的OCP,/原始社会的自给自足式经济int main(),I do everything。,面向对象的程序设计,OO原则开放-封闭原则(OCP)社会发展中的OCP,/物物交换int 捕鱼().int 纺织().int 耕种().int 畜牧().,xx鱼 换 xx布xx粮食 换 xx牛,面向对象的程序设计,OO原则开放-封闭原则(OCP)社会发展中的OCP,/货币出现int 捕鱼().int 纺织().int 耕种().int 畜牧().,xx鱼 值 xx钱xx粮食 值 xx钱,面向对象的程序设计,OO原则开放-封闭原则(OCP)社会发展中的OCP,/工厂出现、商业发展int 生产().int 商店().int 消费().,沃尔玛开业,有打折?,面向对象的程序设计,OO原则开放-封闭原则(OCP),面向对象的程序设计,OO原则开放-封闭原则(OCP),public double totalPrice(Part parts)double total=0.0;for(int i=0;iparts.length;i+)total+=partsi.getPrice();return total;,面向对象的程序设计,OO原则开放-封闭原则(OCP),public double totalPrice(Part parts)double total=0.0;for(int i=0;iparts.length;i+)if(partsi instanceof Motherboard)total+=(1.45*partsi.getPrice();else if(partsi instanceof Memory)total+=(1.27*partsi.getPrice();else total+=partsi.getPrice();return total;,面向对象的程序设计,OO原则开放-封闭原则(OCP),public class Part private double basePrice;public void setPrice(double price)basePrice=price;public double getPrice()return basePrice;,public class Motherboard extends Part public double getPrice()return 1.45*basePrice;,public class Memory extends Part public double getPrice()return 1.27*basePrice;,面向对象的程序设计,OO原则开放-封闭原则(OCP),public class Part private PricePolicy pricePolicy;public void setPricePolicy(PricePolicy policy)pricePolicy=policy;public void setPrice(double price)pricePolicy.setPrice(price);public double getPrice()return pricePolicy.getPrice();,public class PricePolicy private double basePrice;public void setPrice(double price)basePrice=price;public double getPrice()return basePrice;,public class SalePrice extends PricePolicy private double discount;public void setDiscount(double discount)this.discount=discount;public double getPrice()return basePrice*discount;,面向对象的程序设计,OO原则开放-封闭原则(OCP)通过抽象来封装和隔离可能的变化。绝对的封闭是不可能的。变化发生时要立即进行处理。查明变化的时间越长,正确抽象就越困难。拒绝不成熟的抽象和抽象本身一样重要。,面向对象的程序设计,OO原则组合/聚合复用原则(CARP),多用组合,少用继承。,面向对象的程序设计,OO原则组合/聚合复用原则(CARP),a、继承会使类无限膨大,可能会使类变得臃肿。b、子类可能会继承父类中那些无用甚至有害的方法。c、组合比继承更灵活,可以实现在执行中动态改变对象的功能。,面向对象的程序设计,OO原则组合/聚合复用原则(CARP),面向对象的程序设计,OO原则接口隔离原则(ISP),使用多个专门的接口比使用单一的总接口要好。,面向对象的程序设计,OO原则单一职责原则(SRP),类应该只有一个引起它变化的原因。,面向对象的程序设计,OO原则单一职责原则(SRP),class TcpServerpublic:int StartService();int StopService();int ListenThread();int ReceiveThread();,面向对象的程序设计,OO原则最少知识原则(LKP)/迪米特法则(LoD),一个对象应当对其它对象有尽可能少的了解。,面向对象的程序设计,OO原则最少知识原则(LKP)/迪米特法则(LoD),publicfloatgetTemp()/没有采用该原则Thermomentthermoment=station.getThermoment();returnthermoment.getTemperature();,publicfloatgetTemp()/采用该原则returnstation.getTemperature();,面向对象的程序设计,OO原则最少知识原则(LKP)/迪米特法则(LoD),就任何对象而言,在该对象的方法内,只应该调用以下范围的方法:1)该对象本身2)被当作方法的参数而传递进来的对象3)此方法所创建或实例化的任何对象4)对象的任何组件。,面向对象的程序设计,OO原则里氏代换原则(LSP),子类型必须能够替换掉它们的父类型。,面向对象的程序设计,OO原则里氏代换原则(LSP),Type1 object1;Type2 object2;/Type2是Type1的子类(派生类)int Func(Type1,面向对象的程序设计,OO原则里氏代换原则(LSP),/长方形class Rectanglepublic:virtual void setHeight(int h)m_height=h;virtual void setWidth(int w)m_width=w;virtual int Height()const return m_height;virtual int Width()const return m_width;virtual int Cycle()const return(Height()+Width()*2;virtual int Area()const return Height()*Width();private:int m_height;int m_width;,面向对象的程序设计,OO原则里氏代换原则(LSP),/正方形class Square:public Rectanglepublic:void setEdge(int edge)m_height=edge;m_width=edge;void setWidth(int w)setSize(w);void setHeight(int h)setSize(h);,面向对象的程序设计,OO原则里氏代换原则(LSP),void resize(Rectangle,面向对象的程序设计,OO原则里氏代换原则(LSP),class Quadranglepublic:virtual int Cycle()const=0;virtual int Area()const=0;,/长方形class Rectangle:public Quadranglepublic:void setHeight(int h)m_height=h;void setWidth(int w)m_width=w;int Height()const return m_height;int Width()const return m_width;int Cycle()const return(Height()+Width()*2;int Area()const return Height()*Width();private:int m_height;int m_width;,/正方形class Square:public Quadranglepublic:void setEdge(int edge)m_edge=edge;int Edge()const return m_edge;int Cycle()const return Edge()*4;int Area()const return Edge()*Edge();private:int m_edge;,面向对象的程序设计,OO原则依赖倒转原则(DIP),高层模块不应该依赖低层模块,两者都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象。要针对接口编程,不要针对实现编程。,面向对象的程序设计,OO原则依赖倒转原则(DIP),class Animal;class Dog:public Animal;class Cat:public Animal;,针对实现的编程:Dog d;d.bark();,针对接口的编程:Animal*animal=new Dog();animal-makeSound();或Animal*animal=getAnimal();animal-makeSound();,面向对象的程序设计,OO原则依赖倒转原则(DIP),class Copyerpublic:int DoCopy(Keyboard,面向对象的程序设计,OO原则依赖倒转原则(DIP),class Copyerpublic:int DoCopy(Reader,class Readerpublic:virtual int Read()=0;class Writerpublic:virtual int Write(int c)=0;,面向对象的程序设计,OO原则好莱坞原则,由高层组件决定如何使用低层组件。不要给我打电话,我会打电话给你们!,面向对象的程序设计,OO原则好莱坞原则,class Worker int Invoke(Candidate,面向对象的程序设计,OO原则好莱坞原则,candidate.Registe(worker);,worker.Invoke(candidate);,

    注意事项

    本文(程序设计思想.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开