c#的六大设计模式

今天来讲一下c#的六大设计模式,其实了设计模式是一种思想,一种思路,并不是解决问题的具体方法。我之前没有学设计模式,之前感觉是设计模式对我来说有点像玄学,哈哈!!!

1.单一职责性:一个类实现单一的某个功能,而不是实现全部功能。一个类实现多种功能方便理解,但是会造成耦合性高,,代码杂而乱,如果分成多个类会造成理解难度加大,但是耦合度低,代码清晰有条理性。

                         一个程序中如果方法较多,类型较多的情况下建议遵循单一职责性原则,如果方法较少,类型较少的情况下可以违背单一职责性原则去实现。

                        例子:逻辑分支(违背单一职责性原则),父子类(遵循了单一职责性原则)。

2.里式替换原则:父类出现的地方,都可以用透明的子类去代替。

  •                            父类有的子类也有,这句话的意思就是子类继承父类所有的属性,如果父类有的子类没有,那就断掉继承。
  •                            子类有的,父类不一定有,子类继承父类,拥有父类中所有属性,字段,方法,但是子类可以自己声明另外的方法。
  •                            父类实现的方法,子类就不要再用关键字new隐藏实现了。

3.迪米特法则:对象与对象不直接依赖,而是类与对象的直接朋友进行通讯,这样减少了代码的耦合            

                        例子:三层(上层不直接依赖数据访问层,而是依赖逻辑层)

4.依赖倒置原则:减少类与类之间的具体依赖,实现抽象依赖,依赖抽象而不是依赖细节。面向抽象具有通用性,抽象类是实现通用性的,如果要实现个别具体的就不要使用面向抽象。上层直接依赖抽象类而不是底层,只要抽象不变,上层就不会涉及。

                           面向对象就是上层直接依赖底层,其他的类又依赖了底层,只要底层发生了变化,那会导致该项目发生波浪一样反应。

                          面向抽象就是上层不直接依赖底层,而是依赖抽象类,只要抽象类不变,底层发生任何改变,上层都不会有任何影响,就有助于该项目的扩展。

5.接口隔离原则:不要做到大而全,就是一个接口中有多种方法,另外一个类去要实现这个接口中的一两个方法,结果就要继承这个接口中的全部方法。

                            不要做到太具体细分。基本就是为了不做到大而全就把每个方法就划分成不同的接口类。

                            要做到高聚合。举个例子来理解一下:就是用智能手机类,老人手机类,这两个类里面有共同的方法:打电话,发短信。这两个方法就可以放进一个接口类中,这叫中高聚

                            合。

6.开闭原则:就是不建议修改旧的代码,支持新写代码,支持扩展。

今天堆的文字比较多,,有机会我把代码整上,方便各位大佬的理解,如果有的地方不对,欢迎大家来指点,谢谢!!!

        

猜你喜欢

转载自www.cnblogs.com/Eudora-R/p/13177027.html
今日推荐