2019独角兽企业重金招聘Python工程师标准>>>

如何设计类, 关键点:

  • 类的接口应该提供一贯的抽象。很多问题都是因为违背了这个简单的原则。
  • 类的接口应该隐藏某些东西,比如系统接口,设计决定,或者实现细节。
  • 应该优先采用聚合,除非你的两个类的关系很明确 " is a " 的关系。比如花是植物,那么类花应该从类植物继承。
  • 继承很强大,但是也添加了复杂性。和前面提到的管理软件复杂度是有冲突的。
  • 类是控制/管理复杂度的基本工具。应该尽可能的设计好每一个 类来简化系统的复杂度。

好的类接口

设计类的关键在于设计类的接口。

一个不好的类接口例子,每个接口函数都不是很直观地表达其目的。

class Program {
public:...// public routinesvoid InitializeCommandStack();void PushCommand( Command command );Command PopCommand();void ShutdownCommandStack();void InitializeReportFormatting();void FormatReport( Report report );void PrintReport( Report report );void InitializeGlobalData();void ShutdownGlobalData();...private:...
};

改进后的类设计

class Program {
public:...// public routinesvoid InitializeUserInterface();void ShutDownUserInterface();void InitializeReports();void ShutDownReports();...
private:...
};

为什么要创建类:

  • 为世界上真实的事物建模
  • 为抽象对象建模
  • 减低复杂度
  • 隔离复杂度
  • 隐藏实现细节
  • 限制修改代码的范围
  • 隐藏全局数据
  • 集中控制点
  • 代码重用
  • 打包类似的代码族
  • 完成特殊的代码重构

链接:

如何编写高质量的代码

转载于:https://my.oschina.net/billzheng/blog/84654

如何编写高质量的代码二 - 类的设计相关推荐

  1. iOS 编写高质量Objective-C代码(八)

    前言: 这几篇文章是小编在钻研<Effective Objective-C 2.0>的知识产出,其中包含作者和小编的观点,以及小编整理的一些demo.希望能帮助大家以简洁的文字快速领悟原作 ...

  2. 表示python代码块的是_编写高质量Python代码的59个有效方法,你用过几个

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...

  3. iOS 编写高质量Objective-C代码(六)

    级别: ★★☆☆☆ 标签:「iOS」「Block」「Objective-C」 作者: MrLiuQ 审校: QiShare团队 前言: 这几篇文章是小编在钻研<Effective Objecti ...

  4. 编写高质量的代码,改善c#程序的157个建议_之1~10

    //编写高质量的代码,改善c#程序的157个建议 # 1.正确操作字符串 ## 1 * 确保尽量少的装箱 * 避免分配额外的内存空间 1. 会进行一次装箱 ````C# string str1=&qu ...

  5. 编写高质量的代码—从命名入手(命名…

     编写高质量的代码-从命名入手(命名规范) 笔者从事开发多年,有这样一种感觉,查看一些开源项目,如Spring.Apache Common等源码是一件赏心悦目的事情,究其原因,无外两点:1)代码质量非 ...

  6. python中如何编写代码输入多个数据并把它们放在一个列表中去_编写高质量Python代码的59个有效方法,你用过几个...

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...

  7. python中如何编写代码输入多个数据并把它们放在一个列表中去_这59条编写高质量Python代码的方法你知道吗?...

    这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码的59个有效方法>,感觉还不错,具有很大的指导价值. 下面将以最简单的方式记录这59条建议,并在大部 ...

  8. python编写代码避免内存增加_读书笔记(6): 编写高质量python代码的59个有效方法-完结...

    前言 <编写高质量python代码的59个有效方法>这本书分类逐条地介绍了编写python代码的有效思路和方法,对理解python和提高编程效率有一定的帮助.本笔记简要整理其中的重要方法. ...

  9. [编写高质量iOS代码的52个有效方法](五)接口与API设计(下)

    [编写高质量iOS代码的52个有效方法](五)接口与API设计(下) 参考书籍:<Effective Objective-C 2.0> [英] Matt Galloway 先睹为快 19. ...

最新文章

  1. 分治算法的设计思想(二分检索、二分归并排序)
  2. 应用程序性能分析利器 —— Visual Studio Profiler
  3. Linux安装/卸载软件教程
  4. CentOS 7——yum错误[Error: rpmdb open failed]解决方案
  5. list操作 rediscluster_Redis集群批量操作
  6. Unable to execute dex: GC overhead limit exceeded
  7. python模拟购物模块_python -模拟购物 -赊账版 粗糙之极
  8. linux voip客户端,linux搭建VOIP
  9. 降序排序_排序简单,应用不易,使用Excel排序的几点建议
  10. 物联网核心安全系列——车载物联网的加密防盗版
  11. python拦截tcp数据包_发送低级原始tcp数据包python
  12. 实用的Safari浏览器扩展工具——浏览标签太多?来一键保存!
  13. python用三种方式定义字符串、并依次输出_Python中字符串拼接的三种方式
  14. 为Struts 2.0做好准备
  15. 【CAN】CAN的比特率和波特率
  16. xp计算机怎样看ip地址,XP电脑ip地址怎么查看?XP系统怎么样查看电脑的IP地址?...
  17. java 阿拉伯数字日期转换为中文大写日期方法_java方法转换大写日期及人民币大写转换方式 .txt...
  18. Android卡顿优化
  19. Leetcode 跳跃游戏
  20. H3C服务器修改启动项,H3C服务器 iFIST快速安装指南-6W102

热门文章

  1. Oracle 将一个查询结果值动态赋值给一个变量
  2. LNMP的403问题总结
  3. linux下安装gcc及设置多版本gcc多版本共存(如果enable静态库,会报错,不知道为什么,忽略静态库就没问题了)...
  4. ubuntu系统颜色更改
  5. SubSonic 零代码的数据访问
  6. 《Ray Tracing in One Weekend》——Chapter 6: Antialiasing
  7. 《Ray Tracing in One Weekend》——Chapter 3: Rays, a simple camera, and background
  8. erp沙盘采购总监的心得_经验分享 让ERP系统操作少走冤枉路
  9. Hive最全学习笔记总结
  10. mysql数据库简单查询试题_面试题: mysql数据库 已看1 简单的sql练习