稳定的框架来源于好的设计,好的设计才能出好的作品,掌握面向对象基本原则才会使我们的设计灵活、合理、不僵化,今天就来谈一谈我们.net 面向对象设计的基本原则。

       对于一个没有任何设计经验的开发者来说,如果不假思索和探究式的去设计系统软件的框架,势必会导致系统代码出现这样或者那样的问题,比如:代码复杂和重复,不能剥离出独立的复用组件,系统不稳定等。通过灵活的设计原则,加上一定的设计模式,封装变化,降低耦合,实现软件的复用和扩展,这正是设计原则的最终意义。

      我们都知道面向对象的三大要素是封装、继承和多态,这三大完整体系以抽象来封装变化,隐藏具体实现,保护内部信息;继承实现复用;多态改写对象行为。在此基础上我们来聊一聊.net中七大面向对象设计原则:

       一、单一职责原则

    系统好不好,强调的是模块间保持低耦合、高内聚的关系,面向对象设计原则第一条则是:单一职责原则(SRP)。

        核心:单一职责原则强调的是职责分离,一个类应该只有一种引起它变化的原因,不应该将变化原因不同的职责封装在一起。

        实现单一职责原则最好一个类只做一件事,职责过多,可能引起它变化的原因就很多,这将导致职责依赖,相互之间就会产生影响。

        应用如下:

        举一个项目中经常用到的例子,比如通过不同的权限来设计数据库不同的操作。

        .net面向对象设计原则

       以上的设计中,把数据库的操作类和用户权限的判断封装在一个类中,设计就显得有点僵硬,因为权限的规则变化和数据库的规则变化都会改变DBManager类。好的设计是需要将二者分开,设计如下:  

        .net面向对象设计原则

        新增类DBManagerProxy,有效实现了职责分离,类DBAction至关注数据库操作,不用担心权限判断,使用职责分离的代码如下: 

 1     /// <summary>
 2     /// 数据库操作实体
 3     /// </summary>
 4     public class DBAction : IDBAction
 5     {
 6         /// <summary>
 7         /// 增加
 8         /// </summary>
 9         public void Add()
10         {
11             Console.WriteLine("Add Succeed");
12         }
13         /// <summary>
14         /// 删除
15         /// </summary>
16         /// <returns></returns>
17         public int Delete()
18         {
19             Console.WriteLine("Delete Succeed");
20             return 1;
21         }
22         /// <summary>
23         /// 查询页面
24         /// </summary>
25         public void View()
26         {
27         }
28     }
DBAction类

相关文章:

猜你喜欢
  • 2021-11-23
  • 2021-11-23
相关资源
相似解决方案