【C/C++】面向对象开发的优缺点
原创文章,转发请注明出处。
面向对象开发的优缺点
面向对象开发 是相对于 面向过程开发 的一种改进思路。
由于流水线式的面相过程开发非常直接,高效。在面对一些简单项目时,只需要几百行,甚至是几十行代码,就能完成功能,并且运行良好。
- 直接:程序的运行过程一目了然,就像阅读一篇文章一样,只要顺着读下去就行了。不需要全文搜索哪里有伏笔,哪里有包袱。
- 高效:不需要复杂的框架,不需要设计模式。不需要纠结功能的划分。
但是【面向过程开发】也有自身的不足。在项目膨胀到一定程度的时候,维护成本,风险是几何倍数的增长。
- 多人同时开发一个功能,维护同一条程序流水线。每个人的思路不一样,修改方案不一样,上游的代码经常会干扰下游代码的运行。
- 模块需要升级,需要扩容,但是对之前的代码毫无了解。不知道从流水线的哪里开刀。不知道自己会不会干扰到功能的运行。
银色子弹?
随着现代计算机性能的提升,程序的复杂度提升。我们不得不考虑,能否有更好的方式来改善【面向过程开发】的劣势。
当前发展的比较好的一个方向,就是【面向对象开发】。
但是,必须强调的是,这并不意味着【面向对象开发】是更好的,更加优秀的,未来的趋势。
只有最合适的,才是最好的。
【面向对象开发】通过语法,面相对象设计原则等等,限制了一部分灵活性,又增加了一部分灵活性。
让代码既可以实现相对稳定,又可以实现对于扩展的包容。
相对稳定:开发一套成熟的框架,将不易发生变更的代码与易发生变更的代码隔离。(可以通过设计模式实现隔离。)
易扩展:通过多态,可以灵活的组装不同的功能实现方案。
【C/C++】面向对象开发的优缺点的更多相关文章
- Java面向对象编程 第一章 面向对象开发方法概述
一.软件开发经历的生命周期: ①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 二.为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点: ① 可重用性 ...
- Java面向对象 第一章 面向对象开发方法概述
一.软件开发经历的生命周期: ①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 二.为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点: ① 可重用性 ...
- ASP.NET的简单与面向对象开发
ASP.NET开发,一开始是为了超赶时间完成任务,只能把功能实现即可.如下面一个功能,在网页中有一个铵钮,用户点一点切换网页的图片,再点一点又切换回来.我们要怎样做?在铵钮事件中去变更图片的路径即可. ...
- 新手如何理解JS面向对象开发?
今天有时间讲讲我对面向对象的理解跟看法,尽量用通俗的语言来表达,多多指教! 如今前端开发已经越来越火了,对于前端开发的要求也是越来越高了,在面试中,经常有面试官会问:你对JS面向对象熟悉吗? 其实,也 ...
- 使用 Dojo 掌握面向对象开发
原文出处:Joe Lennon 从头开始学习 Dojo,第 2 部分 使用 Dojo 掌握面向对象开发 什么是面向对象开发? 面向对象编程(Object-Oriented Programming,OO ...
- javaScript 面向对象开发实例
javaScript 面向对象开发实例 这个是结合require的模块化开发,首先创建构造函数: //test.js 1 function Test(lists) { var config={ nam ...
- JavaScript 面向对象开发知识基础总结
JavaScript 面向对象开发知识基础总结 最近看了两本书,书中有些内容对自己还是很新的,有些内容是之前自己理解不够深的,所以拿出来总结一下,这两本书的名字如下: JavaScript 面向对象精 ...
- CMM模型,结构化开发方法和面向对象开发方法的比较,UML(统一建模语言),jackson开发方法
CMM模型 一.CMM简介 CMM,英文全称为Capability Maturity Model for Software,即:软件成熟度模型. CMM的核心是把软件开发视为一个过程.它是对于软件在定 ...
- 侯捷《C++面向对象开发》——动手实现自己的复数类
前言 最近在看侯捷的一套课程<C++面向对象开发>,刚看完第一节introduction之后就被疯狂圈粉.感觉侯捷所提及所重视的部分也正是我一知半解的知识盲区,我之前也写过一些C++面向对 ...
随机推荐
- 人物传记Kyle Tedford:数据环境生变,银行大数据风控怎么办?
数据是金融业务的基石,监管集中清查大数据公司,很多东西在发生根本性改变,资金方做"甩手掌柜"的好日子不会重现.那些缺乏自主风控能力的金融机构,在未来的行业竞争中,恐无以立足了.近日 ...
- 解决ROS及Fast-RTPS安装和使用中raw.githubusercontent.com无法连接的问题
资料参考: https://blog.csdn.net/weixin_44692299/article/details/105869229
- C++算法代码——奖学金
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1098 题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学 ...
- Python3网络爬虫-- 使用代理,轮换使用各种IP访问
# proxy_list 代理列表 run_times = 100000 for i in range(run_times): for item in proxy_list: proxies = { ...
- Elasticsearch 及其套件的安装上手
前言 本文主要讲解Elasticsearch及其套件Kibana.Logstash的安装及启动,还讲解如何导入数据用于后续的实验. 说明:Elasticsearch是基于Java开发的,所以如果是下载 ...
- 使用PowerDesigner进行数据库设计并直接把设计好的表导出相应的建表语句
Power Designer:数据库表设计工具 PowerDesigner是Sybase公司的一款软件,使用它可以方便地对系统进行分析设计,他几乎包括了数据库模型设计的全过程.利用PowerDesig ...
- iframe 调用父页面元素
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="IFrame.aspx.cs ...
- 第50天学习打卡(JavaScript)
前端三要素 HTML(结构):超文本标记语言(Hyper Text Markup Language),决定网页的结构和内容. CSS(表现):层叠样式表(Cascading Style Sheets) ...
- Java数组练习(打印杨辉数组)
打印杨辉数组 package com.kangkang.array; import java.util.Scanner; public class demo02 { public static voi ...
- Java RPC 框架 Solon 1.3.9 发布,更便利的支持
Solon 是一个微型的Java RPC开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC. ...