2 Coding的基本原则 - 图1

1 信息隐藏的例子

  1. class Door
  2. {
  3. public:
  4. enum State
  5. {
  6. closed = 1;
  7. opening,
  8. open,
  9. closing
  10. };
  11. //这里,枚举State需要在类外声明才能调用get函数,枚举的信息被暴露
  12. State getState() const
  13. {
  14. return m_state;
  15. }
  16. private
  17. State m_state;
  18. };

需要对get函数进行修改,同时使用枚举类防止被转换成其他类型:

  1. class Door
  2. {
  3. public:
  4. //这回,类外只知道true or false
  5. bool isClosed() const;
  6. bool isClosing() const;
  7. bool isOpen() const;
  8. bool isOpening() const;
  9. private
  10. enum class State //枚举类
  11. {
  12. closed = 1;
  13. opening,
  14. open,
  15. closing
  16. };
  17. State m_state;
  18. };

2 高内聚的例子

image.png image.png
image.png

3 低耦合的例子

image.png