面向对象中,编写类的一个解决思路

前言

        面向对象是一种编程思想,通过类和接口来实现.

引入

        前面帖子中简单提到过,编程就是写类,类写完程序大概就完成了.当然这很笼统,这里再给出类设计时的一个思路以及一种解决.

类的分类

        类可以分为数据类,动作类,工具类这三种模式.

数据类

        在C语言的角度,数据类是最直观的,就是struct后面定义的结构.

        在C++中沿袭了这一设定,用struct类表示数据类.在<C++ Prime Plus> 6th Edition的P345数据类中只有属性,没有方法,最大特点是数据公开.因为在面向对象中,有个默认设定"数据私有".访问时提供公开接口.就是private里放数据,public里放访问数据的方法.就是说struct中定义的属性,不需要再提供访问的接口.

        数据类的设计,表达的意思很明确,就是"这种类型中含有什么内容".形式上比较简单,难点在属性是数据集合时,考虑用什么样的数据结构.

        数据类的设计是软件设计中一个重点,以后会单独列出专栏来分析.

工具类

        工具类和C语言的函数是一样的,用方法直接表达逻辑.

#include<iostream>
using namespace std;

class DemoTool {
public:
	int add(int a, int b) {
		return a + b;
	};
};

int main(void) {
	DemoTool dt;
	int result=dt.add(3, 4);
	cout << "结果是:" << result << endl;
}

        工具类只有属性,没有方法

动作类

        和前面两者有所对应的是:动作类有属性和方法.

        动作类是面向对象的核心部分,程序需要一层层的实现,从数据到场景再映射到硬件,中间都是动作类在穿插.打个比方:你有一家公司,下属有若干个部门,每个部门有若干岗位.每个岗位完成各自工作.那么公司,部门,岗位这些被抽象成动作类.公司负责接业务,分派任务到部门,部门再派给具体岗位.大概是这么个意思.

        动作类的核心在于其动作.

遇到问题怎么办

        前面帖子中谈到过,程序员遇到最大的问题是"如何命名".笔者之前误读了以为这是个玩笑,其实这不是玩笑,当程序员遇到了程序结构上的问题,不知道下一步该怎么办的时候,也就是不知道怎么用类去表达的时候,产生了不知道如何命名的问题.所以真正的意思是:我下一步不知道该怎么去定义一个类来表达我要做的事了

        有个办法:把想做的动作用函数表达出来.以面向过程的思路.写完以后再编个动作类,抽取函数中的形参给属性.如果发现工具类更好表达,就用工具类.

后记

        编程时可以随心一点,开始不用在意细节.代码要写得优雅也很重要,开始不太在意去精雕细琢,而在于把思路表达清楚.在编程时,常常发现有一些"对称"的东西存在,既实用且有趣.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重庆彭枫

你的鼓励是我创作的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值