1:类不能用private和protected修饰,因为它们都是修饰成员变量和方法的。类的修饰符:public,static(静态类),internal(默认 ),abstract(抽象类)
2:在GAC中可以允许同名称但是不同版本号的程序集存在,当不同版本的强命名程序集安装在GAC中后,不同的应用程序会根据版本号信 息去调用不同的程序集,这样就不会产生DLL程序集冲突的问题了
强命名程序集要求设计人员为程序集指定版本号、区域、Private Key等信息,CLR则以此信息来找到正确的程序集
http://blog.youkuaiyun.com/tongdengquan/archive/2010/01/13/5183929.aspx
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/GAC (GAC 目录)
3:.NET domain(域):轻量级的应用程式隔离方式,
相对于传统的隔离方式进程,domain允许统一操作系统的中的一个进程拥有几个域
4:成员修饰符,共5种,public、protected、internal、private、protected internal
protected internal: 同一程序集中的内部类型或成员可访问 + 从包含该成员的类中派生出去的类(可以在其他程序集)中可访问
5:“protected internal”要open一些,不仅当前程序集可用、其他程序集的继承子类中也可以使用
6:class 修饰符:(没有protected、private)
internal为默认的修饰符,值允许当前工程内互访。public允许别的工程互访。
public 内部不能有私有成员。
satic: public static(public 放前面)
sealed:密封内,不能继承。public sealed、sealed。
abstract:抽象类。
7:编译器不允许派生类的可访问性比其基类更高。也就是说,内部类可以继承于一个公共类,但公共类不能继承于一个内部类。
合法的:内部类继承公共类
8:如果没有使用基类,被定义的类则只继承于基类System.Object(它在C#中的别名是object)
9:除了以这种方式指定基类外,还可以在冒号的后面指定支持的接口。如果指定了基类,它必须紧跟在冒号的后面,之后才是指定的接口。如果没有指定基类,则接口就跟在冒号的后面。使用逗号分隔基类名(如果有基类)和接口名。可以指定多个接口,以逗号分隔即可。
10:constant 常量 恒量。
11:简单工厂模式:多了一个虚类和一个工厂类,然后把不同功能做成实现虚类的不同子类。客户端只和工厂打交道,工厂负责按需求
去实例化不同的子类。
工厂类的作用就是生产和返回类。
单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。
设计模式,就是充分使用面向对象语言的封装、继承和多态,从而实现面向对象程序的可扩展、可维护,可复用和高度灵活。
子类封装算法,父类用多态的方式引用子类。
父类引用指向子类对象的这个过程中插入了第三方逻辑,也就是我们通常说的设计模式。
不用NEW关键字来生产对象,而是交给工厂去生产。工厂可以更具传入的信息而生产出专用的对象,并传回引用。
迪米特法则
依赖倒转法则 --> 面向接口编程 依赖于抽象而不是依赖于细节
单一职责原则
开闭原则
装饰类更多的使用了面向对象的封装特性
程式中修改代码的地方只应该是client端,或者说表示层。别的地方最好是用扩展的方式实现。
就扩充父类功能来说,包装模式是子类的一个替代方案。
优先使用组合,而非继承。
12:提供给user的程序,很大程度上来说是对变化的封装。
13: WEB 服务是无状态的,服务器并不会记住usr的状态,而是每次请求是从新生成相应类。asp.net中,viewstate传回
页面状态,服务器解析其内容,并由此确定是否为第一次访问以及页面的改变。