代码大全阅读随笔(三)

把常见的底层数据类型创建为ADT并使用这些ADT,而不用在使用底层数据类型。

创建高质量的类,第一步,可能也是最重要的一步,就是创建一个好的接口。这也包括了创建一个可以通过接口来展现的合理抽象,并确保细节仍被影藏在抽象背后。

一定游离基类所实现的抽象是什么
提供成对的服务
把不相关的信息转移到其他类中
尽可能使用接口编程,而不是表达语义
谨防在修改是破坏接口的抽象
不要添加与抽象接口不一致的公用成员
同时考虑抽象性和内聚性
良好的封装

耦合性与抽象和封装性有着非常紧密的联系。紧密的耦合性总是发生在抽象不严谨或者封装性遭到破坏的时候。如果一个类提供了一套不完善的服务,其他子程序就可能要去直接读取该类的内部数据。这样一来,就把类给拆开了,把它从一个黑盒子变成一个玻璃盒子,从而事实上消除类类的封装性。

给类定义合理的接口,对于创建高质量程序性起到了关键作用。请确保你在使用继承来避免代码重复并且复杂度最小。

一般来说,尽可能减小类和类之间相互合作范围,尽可能让下面这几个数字最小:
所实例化的对象的种类
再被实例化对象上直接调用不同子程序的数量
调用由其他对象返回的对象的子程序的数量
创建类的原因:

应该避免的类: 1.避免创建万能类 2. 消除无关紧要的类,3.避免使用动词命名的类
创建类的理由:
为了实现世界中的对象建模,为抽象的对象建模,降低复杂度,隔离复杂度,隐藏实现细节。
集中控制这一概念和信息隐藏有些相似,但它具有独特的启发式功用,值得把它放到你的编程工具箱中。
让代码更易于重用,
类的接口应该提供一致的抽象,很多问题都是由于违背这一原则引起的。
类的接口应隐藏一些信息,如某个系统接口,某项设计策略,或者一些实现细节。
包含往往比继承更为可取,
继承是一种有用的工具,但它会增加复杂度,
类是管理复杂度的首先工具,要在设计类时给予足够的关注,才能实现这一目标。

子程序:是为了实现一个特定目的的而编写的一个可被调用的方法或者过程。
1.单一明确的目的

一般来说,不可取得内聚性不可取
1.过程上的内聚
2.逻辑上的内聚
3.巧合的内聚性
编写具有功能上的内聚性的子程序几乎总是可能的,因此把注意力集中于功能上内聚性,从而获得更大的收获。

准确使用对仗词;
add/remove increment/decrement open/close begin/end insert/delete show/hide create/destroy lock/unlock source/traget fist/last min/max start/stop get/put next/previous up/down get/set old/new

创建子程序的要点;
创建子程序最重要的目的是提高代码的可管理性,当然也有一些其他好处的理由,节省代码空间,提高可读性,可靠性,可修改性等更为重要一些。
有时候,把一些简单的操作写成一个独立的子程序也非常有价值。
子程序可以按照其内聚性分为很多类,而你应该让大多数子程序具有功能上的内聚性,这是最佳的一种内聚性。
子程序的名字是他的质量指示器。如果名字糟糕恰如其分,那就说明这个子程序设计很差劲。如果名字糟糕而且又不准确,那么他就反映不出程序是干什么的,不管怎么样,糟糕的名字都意味着程序需要修改,
只有在某个子程序的主要目的是返回起名字所描述特定结果是,才应该使用函数,

你可能感兴趣的:(c#)