如何进行面向对象的类设计?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3056个文字,预计阅读时间需要13分钟。
设计旨在利用详尽的信息完整表达一个职责清晰的观念,对好与坏的思考既不复杂也不简单;少了,概念就不完整;多了,显得冗余,累赘。在具体例子中,允许适度的重复,但避免过度。
类的设计在于用恰到好处的信息来完整表达一个职责清晰的概念,恰到好处的意思是不多也不少,少了,就概念就不完整;多了,就显得冗余,累赘,当然特例下,允许少许的重复,但是,这里必须要有很好的理由。冗余往往就意味着包含了过多的信息,概念的表达不够精准,好比goto,指针,多继承这些货色,就是因为其过多的内涵,才要严格限制其使用。好像,more effective c++上说的,class的成员函数,应该是在完整的情况下保持最小化。但是,这里我们的出发点,是成员数据的完整最小化。
最小化的好处是可以保持概念最大的独立性,也意味着,可以用最小的代价来实现这个概念,也意味着对应用层的代码要求越少,非侵入式?好比c++11 noexcept取代throw(),好比从多继承中分化出来接口的概念,好比不考虑多继承虚继承的普通成员函数指针。又比如,如果不要求只读字符串以0结束,那么就可以把只读字符串的任何一部分都当成是只读字符串。类的对外功能固然重要,但是,类不能做的事情,也很重要。
首先是要有清晰的概念以及这个概念要支持的最基本运算,然后在此基础上组织数据,务求成员数据的最小化。当然,概念的产生,并非拍着脑袋想出来的,是因为代码里面出现太多那种相关数据的次数,所以就有必要把这些数据打包起来,抽象成一个概念。
本文共计3056个文字,预计阅读时间需要13分钟。
设计旨在利用详尽的信息完整表达一个职责清晰的观念,对好与坏的思考既不复杂也不简单;少了,概念就不完整;多了,显得冗余,累赘。在具体例子中,允许适度的重复,但避免过度。
类的设计在于用恰到好处的信息来完整表达一个职责清晰的概念,恰到好处的意思是不多也不少,少了,就概念就不完整;多了,就显得冗余,累赘,当然特例下,允许少许的重复,但是,这里必须要有很好的理由。冗余往往就意味着包含了过多的信息,概念的表达不够精准,好比goto,指针,多继承这些货色,就是因为其过多的内涵,才要严格限制其使用。好像,more effective c++上说的,class的成员函数,应该是在完整的情况下保持最小化。但是,这里我们的出发点,是成员数据的完整最小化。
最小化的好处是可以保持概念最大的独立性,也意味着,可以用最小的代价来实现这个概念,也意味着对应用层的代码要求越少,非侵入式?好比c++11 noexcept取代throw(),好比从多继承中分化出来接口的概念,好比不考虑多继承虚继承的普通成员函数指针。又比如,如果不要求只读字符串以0结束,那么就可以把只读字符串的任何一部分都当成是只读字符串。类的对外功能固然重要,但是,类不能做的事情,也很重要。
首先是要有清晰的概念以及这个概念要支持的最基本运算,然后在此基础上组织数据,务求成员数据的最小化。当然,概念的产生,并非拍着脑袋想出来的,是因为代码里面出现太多那种相关数据的次数,所以就有必要把这些数据打包起来,抽象成一个概念。

