C#面向对象、构造器简单总结

来源:互联网 发布:黑科技软件 编辑:程序博客网 时间:2024/06/03 14:33

1面向对象的设计原则

1.1 单一职责SRP

一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。

1.2 开闭原则OCP

(最重要的面向对象设计原则)

软件实体应当对扩展开放,对修改关闭。

抽象化是开闭原则的关键:相对稳定的抽象层 + 灵活的具体层。

1.3 里氏代换原则LSP

(向上转型)

在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。

具体见E01.cs

1.4 依赖倒转原则DIP

(C#中编写“换枪”时用到过)

要针对接口(抽象)编程,不要针对实现编程。

1.5 接口隔离原则ISP

当一个接口太大时,需要将它分割成一些更细小的接口。

1.6 合成复用原则CRP

(Unity中可通过向空物体中加不同组件实现将空物体变成不同物体)

优先使用对象组合,而不是继承来达到复用的目的。

1.7 迪米特法则LKP

一个对象只能与直接朋友发生交互,不要和“陌生人”发生直接交互,这样做可以降低系统的耦合度,一个对象的改变不会给太多其他对象带来影响。

2 类的UML图示

2.1图例

减号“-”:private

加号“+”:public

井号“#”:protected

2.2 类之间的关系

单向关联,双向关联,聚合,组合,依赖,继承,接口

3 类中构造器的区别与说明


3.1 有参与无参构造器

类中若不声明任何构造器,默认会存在一个无参构造器;

若声明了有参构造器,默认存在的无参构造器将被覆盖消失

3.2 静态构造器

格式:static 类名(){}

(前面不能加访问修饰符,因为实例化的所有对象是不会通过静态构造器生成的)

无论new几个新对象,仅在第一次new时执行一次

3.3 私有构造器

格式:private 类名(){}

不能在类外调用,只能在类内实例化,这样可以确定实例化对象的数量

(在类内实例化的方式:将“new 类名”实例化过程写入一个public static修饰的方法内。实例化时由其他类通过“类名.方法名”调用)


   

原创粉丝点击