zoukankan      html  css  js  c++  java
  • 代码大全2阅读笔记11~2

    可以工作的类

    ADT(抽象数据类型)

    是指一些数据以及对这些数据操作的集合,这些操作既向程序的其他部分描述了这些数据是怎样的,也允许程序的其他部分修改这些数据。

    抽象数据类型让你可以像在现实世界一样操作实体,而不必在低层的实现上摆弄实体。

    ADT益处

    • 隐藏实现细节
    • 改动不会影响整个程序
    • 让接口提供更多的信息
    • 更容易提高性能
    • 让程序正确性显而易见
    • 程序具有自我说明性
    • 无须在程序内到处传递数据
    • 可以像在现实世界那样操作实体

    使用ADT的建议

    • 把常见的低层数据类型创建为ADT并使用这些ADT
    • 把向文件这样的当作ADT
    • 不要让ADT依赖于存储介质(对外提供接口,而我们不需要知道它底层到底用什么存储的)

    关于类的建议

    • 类的接口应该展现一致的抽象层次,实现且仅实现一个ADT
    • 一定要知道类所实现的抽象到底是什么
    • 考虑提供成对的操作,即相反的操作
    • 不相关的信息移到其他类中
    • 尽可能让接口可编程,而不是表达语义
    • 修改时不要破坏接口的抽象
    • 不要添加和接口抽象不一致的公有成员
    • 同时考虑抽象性和内聚性:关于类的接口表现出的抽象通常更有助于深入理解类的设计

    良好的封装

    • 尽可能限制类和成员的可访问性
    • 不要公开暴露私有成员
    • 避免把私有的实现细节放入类的接口中
    • 不要对类的使用者作出任何假设
    • 不要因为一个接口仅使用公用子程序,就把它归入公开接口
    • 让阅读代码比编写代码更简单
    • 避免从语义上破坏封装行
    • 避免过度耦合

    Is-a和Has-a

    Is-a关系考虑继承,Has-a考虑组合

    创建类的原因

    • 为现实世界的对象建模
    • 为抽象的对象建模
    • 降低复杂度
    • 隔离复杂度
    • 隐藏实现细节
    • 限制变动的影响范围
    • 隐藏全局数据
    • 让参数传递更顺畅
    • 建立中心控制点
    • 让代码更易于重用
    • 为程序族做计划
    • 相关操作包装到一起
    • 实现某种特定的重构

    应该避免的类

    • 避免创建万能类
    • 消除无关紧要的类
    • 避免用动词命名的类
  • 相关阅读:
    修改注册表启动项
    修改IP和DNS的dos命令
    屏蔽windows快捷键的方法
    本地IP,掩码,网关,DNS设置
    DevExpress的提示框
    ASP.NET如何批量保存动态生成的文本框?
    [转]SQL Server 安全性概論與無法刪除資料庫使用者的解決辦法
    如何用C#对Gridview的项目进行汇总统计?
    如何用javasript对Gridview的项目进行汇总统计?
    [转]C#如何获取客户端IP地址
  • 原文地址:https://www.cnblogs.com/ltw222/p/14067856.html
Copyright © 2011-2022 走看看