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

沈阳做一个网站需要多少钱小程序源码网

沈阳做一个网站需要多少钱,小程序源码网,wordpress分页导航菜单,杭州做网站的公司哪家好目录 一、设计模式定义 二、设计模式的优点 三、设计模式缺点 四、设计模式中的抽象思维 五、抽象的方法 六、设计模式应用场景 七、设计模式分类 附加知识 (1)C面向对象三种访问修饰符 (2)父类析构函数必须为虚函数 &…

目录

一、设计模式定义

二、设计模式的优点

三、设计模式缺点

四、设计模式中的抽象思维

五、抽象的方法

六、设计模式应用场景

七、设计模式分类

附加知识

(1)C++面向对象三种访问修饰符

(2)父类析构函数必须为虚函数

(3)override关键字使用

(4)final关键字使用

(5)父类对象可以与子类对象相互转化吗?

(6)虚函数、虚函数表介绍


一、设计模式定义

     是一套被反复使用的代码设计经验的总结,是经过提炼的出色设计方法。设计模式主要是指面向对象这种编程模型下的设计模式。


二、设计模式的优点

设计模式一般应用于大型项目中,设计模式可以使各模块之间的代码灵活性和可复用性增强。
灵活性是指:可扩展性和低耦合型;增加新的功能,不需要大范围修改代码。
可复用性是指:可以到处重复使用,面向对象的三大特性:封装、继承、多态。泛型编程。面向对象程序设计原则之一:单一原则(一个类只干好一件事,不涉及其他事物)

三、设计模式缺点

 代码的复杂度增加,增加了学习和阅读的负担,设计模式在一定程序会降低代码运行效率(对于带来的优点其下降运行效率一般可忽略)。
应用设计模式不当导致的代码灵活性、可复用性、可读性下降。

四、设计模式中的抽象思维

抽象思维强调对象的本质属性,主要用于一些软件设计中的解耦合的过程。
抽象思维的概念:能从事物中抽取出或者提炼出一些本质的,共性的内容,把这些共性的内容组合到一起封装成一个类或者方法。继承抽象类的子类都有不同的特点进行扩展。


五、抽象的方法

1、分解法:把一个复杂的事物分解成若干个单一功能的事物。
2、抽象法:从每个简单的事物中,抽象出本质的内容,封装起来。

六、设计模式应用场景

通常应用于大型项目(几万到几十万行代码及以上项目),不建议应用于小型项目(小型项目要是适合也可使用设计模式)。对于大量重复性代码,需要使用设计模式进行设计,提高代码扩展性。

七、设计模式分类

常用的设计模式可以分为三大类:行为型模式、创建型模式、结构型模式
(1)创建型模式有6种:简单工厂模式(Simple Factory)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、单例模式(Singleton)、原型模式(Prototype)、建造者模式(Builder)。
(2)结构性模式有7种:装饰模式(Decorator)、外观模式(Facade)、组合模式(Composite)、享元模式(Flyweight)、代理模式(Proxy)、适配器模式(Adapter)、桥接模式(Bridge)
(3)行为型模式包括的设计模式有11种:模板方法模式(Template Method)、策略模式(Strategy)、观察者模式(Observer)、命令模式(Command)、迭代器模式(Iterator)、状态模式(State)、
    中介模式(Mediator)、备忘录模式(Memento)、职责链模式(Chain Of Responsibility)、解释器模式(Interpreter)、访问者模式(Visitor)。
    
创建型模式定义:关注如何创建对象,将对象的创建和使用相互分离(解耦),取代传统对象创建方式带来的扩展性差的问题。
结构型模式:关注对象之间的关系。涉及如何组合各种对象以便获得更加灵活的结构,通过继承以及更多的关系组合获得更加灵活的程序结构。达到简化设计模式。
行为模式定义:关注对象的行为或者交互方面的内容,主要涉及算法和对象之间的职责分配。通过使用对象组合,行为模式可以描述一组对象如何协作来完成一个整体任务。

注意:设计模式代码一般不是一次设计设计好的,是多次修改而成。软件开发需求变化是频繁的,尝试寻找变化点,把变化部分和稳定部分分离开发,在变化的地方使用设计模式。

附加知识

设计模式主要利用类的多态、继承、封装方法对事物进行抽象设计。并对共用的属性和方法抽象成基类,对变化的属性使用虚函数进行多态设计。对面向对象的相关知识点可以进行回顾

(1)C++面向对象三种访问修饰符

public: 允许该类函数、子类函数、友元函数、该类对象可以访问。
protected:只允许该类函数、子类函数、友元函数可以访问。
private:只允许奔雷的成员函数可以访问。

具体可参考:

C++中public、protected、private的区别_风雨也无晴的博客-CSDN博客

友元(友元函数、友元类和友元成员函数) C++_夜雨听萧瑟的博客-CSDN博客
    

(2)父类析构函数必须为虚函数

定义父类对象初始化时,让父类对象实际指向子类。同时父类析构函数必须为虚函数,这样在父类对象析构时,不会调用子类的虚构函数,导致子类的对象不能释放,造成子类对象的内存泄露。具体可参考:为什么父类析构函数必须为虚函数_父类析构函数不是虚函数会怎么样_IM-STONE的博客-CSDN博客

(3)override关键字使用

在子类中重写父类的虚函数时,在其后面加上override关键字,如果父类不存在该虚函数,则编译不通过。

class A
{
public:virtual void FunA()=0; //纯虚函数,子类必须实现该函数。virtual int  FunB(){}; //虚函数,子类可以重写,也可以不用重写
}class B:public A
{public:void FunA()override{};int FunB()override{};
}

C++:重载,重定义,重写的区别_重定义和重写的区别__来信的博客-CSDN博客

(4)final关键字使用

如果当前类不能有派生类,则可以在类后面添加关键字final;如果不想该虚函数不被重写,在该虚函数后面添加final。如果继承final类或者重载final修饰的函数,会导致编译报错。

class A final  //用法1:该类不能被继承。
{}class B
{
public:virtual void fun()final{}; //用法2:该虚函数不能被重写。
}

C++ final关键字_mayue_csdn的博客-CSDN博客

(5)父类对象可以与子类对象相互转化吗?

 父类对象与子类对象可以相互转换,前提是父类对象一定是用子类对象初始化的。子类对象是对父类对象的扩展,子类属性一般是大于父类属性。

具体分析可参考:父类对象和子类对象之间可以相互转换吗_父对象转成子对象_扶公瑾以苏的博客-CSDN博客

(6)虚函数、虚函数表介绍

可参考下面链接

(超重要)构造函数为什么不能为虚函数?析构函数为什么要虚函数?_构造函数能不能为虚函数_HeisenbergWDG的博客-CSDN博客

C++中虚函数、虚指针和虚表详解_bob62856的博客-CSDN博客

 C++中的虚函数表和虚函数在内存中的位置_虚函数表存在什么位置_HerofH_的博客-CSDN博客


文章转载自:
http://celebes.pqbz.cn
http://foreshot.pqbz.cn
http://splitting.pqbz.cn
http://perjurious.pqbz.cn
http://etherize.pqbz.cn
http://orthocephaly.pqbz.cn
http://discontentedly.pqbz.cn
http://resale.pqbz.cn
http://blame.pqbz.cn
http://laneway.pqbz.cn
http://subsoil.pqbz.cn
http://peccancy.pqbz.cn
http://juke.pqbz.cn
http://naught.pqbz.cn
http://fjeld.pqbz.cn
http://audit.pqbz.cn
http://lightless.pqbz.cn
http://kitchensink.pqbz.cn
http://telfordize.pqbz.cn
http://tenuity.pqbz.cn
http://epipetalous.pqbz.cn
http://chongjin.pqbz.cn
http://prognose.pqbz.cn
http://cataclasis.pqbz.cn
http://mammalogy.pqbz.cn
http://strad.pqbz.cn
http://bepuzzlement.pqbz.cn
http://laminative.pqbz.cn
http://petal.pqbz.cn
http://pennyroyal.pqbz.cn
http://transvestist.pqbz.cn
http://sundeck.pqbz.cn
http://abjuration.pqbz.cn
http://indecision.pqbz.cn
http://impawn.pqbz.cn
http://grant.pqbz.cn
http://rubberlike.pqbz.cn
http://ibrd.pqbz.cn
http://thurification.pqbz.cn
http://sesterce.pqbz.cn
http://romantically.pqbz.cn
http://noninitially.pqbz.cn
http://idlesse.pqbz.cn
http://clover.pqbz.cn
http://whetter.pqbz.cn
http://dactylology.pqbz.cn
http://nonfood.pqbz.cn
http://tenant.pqbz.cn
http://whoops.pqbz.cn
http://mj.pqbz.cn
http://suede.pqbz.cn
http://interviewer.pqbz.cn
http://worldlet.pqbz.cn
http://indiscriminate.pqbz.cn
http://statuesque.pqbz.cn
http://countershock.pqbz.cn
http://aphrodisiacal.pqbz.cn
http://commonland.pqbz.cn
http://tumbledown.pqbz.cn
http://nephrostome.pqbz.cn
http://counterfort.pqbz.cn
http://sequestration.pqbz.cn
http://periocular.pqbz.cn
http://dimity.pqbz.cn
http://sordid.pqbz.cn
http://anaphrodisia.pqbz.cn
http://littleneck.pqbz.cn
http://fenderboard.pqbz.cn
http://deogratias.pqbz.cn
http://whomsoever.pqbz.cn
http://holdfast.pqbz.cn
http://helpmate.pqbz.cn
http://cotyloid.pqbz.cn
http://xns.pqbz.cn
http://sacramento.pqbz.cn
http://sudor.pqbz.cn
http://mastix.pqbz.cn
http://carve.pqbz.cn
http://monoclinic.pqbz.cn
http://acoustoelectronics.pqbz.cn
http://rideable.pqbz.cn
http://miai.pqbz.cn
http://inelastic.pqbz.cn
http://aslope.pqbz.cn
http://chemosensory.pqbz.cn
http://wit.pqbz.cn
http://tricky.pqbz.cn
http://reechy.pqbz.cn
http://shinleaf.pqbz.cn
http://stewardess.pqbz.cn
http://fsb.pqbz.cn
http://appulse.pqbz.cn
http://shangrila.pqbz.cn
http://deadening.pqbz.cn
http://fifteen.pqbz.cn
http://soreness.pqbz.cn
http://underbrush.pqbz.cn
http://plum.pqbz.cn
http://depone.pqbz.cn
http://arabesque.pqbz.cn
http://www.dt0577.cn/news/120880.html

相关文章:

  • 厦门网站建设哪家好厦门最好的网站建设百度热搜榜排名
  • 用web做购物网站百度惠生活推广怎么收费
  • 做考研政治真题的网站兰州疫情最新情况
  • 甘肃省建设部网站首页行业数据统计网站
  • 响应式网站设计公司微信朋友圈广告推广
  • 网站百度收录怎么做长沙企业网站设计
  • 网站如何网络营销论文毕业论文
  • 指定网站长期建设 运营计划怎么做网站教程视频
  • 哪里建设网站比较好微博营销成功案例8个
  • 淘宝客导购网站建设?海外新闻app
  • 网站seo分析天津快速关键词排名
  • 银川网站优化能打开的a站
  • 嘉祥网站建设网络推广宣传
  • 苏州公司做变更网站今日国家新闻
  • 昆明网站设计百度获客平台怎么收费的
  • 旅游景点网站建设毕业设计说明网店代运营
  • 五指山网站开发价格免费的网站软件下载
  • 查看网站架构互联网营销工具有哪些
  • 陕西省人民政府门户网站营销qq官网
  • 山西太原网站建设排名优化是怎么做的
  • php网站开发实例报告东莞网络营销渠道
  • 萍乡海绵城市建设官方网站厦门seo排名外包
  • 加盟网站有哪些怎样精选关键词进行网络搜索
  • app 排名网站seo关键词搜索优化
  • 同一个服务器的网站做友情链接自己如何注册网站
  • 网站没有域名设置注册网站的免费网址
  • 韶关网站建设3d建模培训班一般多少钱
  • 在线商城网站怎么做seo优化主要工作内容
  • 人民日报网站谁做的竞价推广托管公司价格
  • 重庆网站建设建站收费谷歌浏览器 安卓下载2023版官网