主流想法、我的想法,和自我检讨

简介: 主流想法         定义一个基类,然后当遇到第一种情况(问题)的时候,派生出第一个子类,解决这个问题。当遇到第二种情况的时候,在派生出第一个子类解决;遇到第三种,那就再派生出第三个子类搞定;第n种情况,那就派生第n个子类。

 

主流想法

 

      定义一个基类,然后当遇到第一种情况(问题)的时候,派生出第一个子类,解决这个问题。当遇到第二种情况的时候,在派生出第一个子类解决;遇到第三种,那就再派生出第三个子类搞定;第n种情况,那就派生第n个子类。

      这样就可以很灵活,每一种子类解决一种问题,还可以随意进行扩展。

      只是这么做有一个很大的难点,那就是基类何如来定义?另外在数学上有一个证明方法,不仅要证明当n=1的时候是成立的,最重要的是能够证明n=n+1的时候也是成立的。那么如何确保当遇到第n+1种情况的时候,也可以照样派生出n+1个子类应对呢,而不用修改基类。

      这就需要很扎实的面向对象的基本功,还要能够应用好设计模式,什么时候该用哪种模式,什么时候不需要。不仅要很了解客户的业务逻辑,还要了解行业的特点,客户的员工、老板的想法、特点和操作习惯。总之,已知条件掌握的越多,这个基类也就越稳定,否则的话,很可能经不起折腾(就是客户的需求的不断的变化)。

 

      注意:我不是说这种方法不好,而是说这种方法很有难度。不知道大家是不是可以很轻松的掌握?至少我现在的水平,我是不敢尝试的。把项目搞砸了怎么办?我这个年纪是输不起的了。所以我要稳妥一些,用自己熟悉的方式解决客户的需求。然后尝试在一些可以控制的地方应用面向对像,设计基类。

      比如自定义控件,以前写自定义控件,没有用基类(当时还不会),写出来的代码虽然可以实现我的想法,但是冗余代码很多,也很乱很难维护和扩展。但是现在对自定义控件,基于.net 2.0在需要的地方使用了基类、设计模式、字典(Dictionary)等方法后,代码变的整洁多了,也可以很容易的维护和扩展。这是我在面向对象的一个进步吧。

      另一个尝试就是在UI里面设置基类。把常用的、共用的放进去,其他的页面继承之后,就可以减少很多的冗余代码,看起来也很简洁。

 

我的想法

      好像跑题了,我还没说我的想法呢。我的想法就是依托于强大的关系型数据库。因为我现在主要是做信息管理相关的项目,所以很自然的就想到了数据库,“关系”的强大。

      比如我要做“通用权限”。各种项目,各种客户,需求五花八门,如何通用?简直是不可能的。那么我们换一种角度来看。不管是什么项目,是不是都需要一个“功能节点”,无论是树的形式,还是菜单的形式,本质都是一样的。而对于信息管理的项目来说,这个功能节点大多数都可以细化为单表的增删改查的级别。另外一部分就是报表、图表、统计等这一个级别的了。总之我的思路就是尽量的切成小片,以备以后的随意组合。

      然后我把这些切成小片的功能节点放到了Manage_Function表里面,这样呢我可以根据这个表来生成树状的功能节点(应该也可以生成菜单形式的),这个是一开始的目的。到了后来考虑到权限的问题,最简单的需求就是,张三只能使用节点1、节点2、节点3,其他的节点都不能用,那么我就可以把这三个节点的ID记录下来,分配给张三(也可以在中间加进来一个角色)。这个就是我的最初的思路。大家也应该会想到吧。

      因为我的功能节点是根据Manage_Function里的数据显示出来的,那么如果加上权限的话,那么只需要修改一下提取数据的SQL语句即可。

      这样就分成了两步,第一步:把需求整理成功能节点,添加到Manage_Function 表里面。第二步:这就是一个固定的写法了,围绕Manage_Function来写代码了。

      这样只要Manage_Function可以保持稳定,那就可以了。我的很多很多的东东都是围绕这个表来实现的。

      借用一下“放之四海而皆准”,我不追求在“四海”的范围内都好用,我只追求在“一海”的范围绝对好用(0.25海也行)。这里的绝对好用指的是:易用、快速、简单、简洁、稳定、可扩展

 

自我检讨

      最后做一下自我检讨,我一直对命名规范不在乎,命名很随意,虽然最近改了一些,但是也不够明显。而在写那个Demo的时候比较匆忙,心情也不太好(没办法我是靠激情写代码的)。甚至有些代码是直接copy以前的程序,也没有做什么修改,这个就太不负责了。而当有人提出来的时候,我又很生气,这是不对的,应该感谢才对。既然挑出来了毛病,那我就要认证改正,所以这几天正在改我的那个Demo。认真检查,修改命名,代码重构。既然是Demo,那么任何细节都不应该放过,不能误人子弟呀。万一谁要是把我的某个错误的写法当成了正确的,那我就是罪人了。

      所以请大家放心,我不是不继续我的系列了,而是暂时停下脚步,认真检查。请打大家耐心一下,我不会让大家失望的。

 

 

==================

 

 

      我不喜欢辩论,更不喜欢争论,更更不喜欢吵架。我喜欢安静的聆听,温和的讨论,善意的提问,热情的帮助!

      我做好我自己就可以了,把我的这几年的经验分享出来,完成我的一个心愿!

      让园子里的口水贴少一些吧。

 


 

相关文章
|
2月前
|
前端开发 JavaScript Java
一文了解主流开发语言都有哪些!
本文将综合探讨目前市场上最流行、最多人使用的几种主流开发语言,包括它们的特点、典型应用场景以及简单示例代码。
|
7月前
|
供应链 JavaScript 前端开发
业界三款主流的 PWA Storefront 概述
业界三款主流的 PWA Storefront 概述
138 0
|
移动开发 Dart 前端开发
【技术干货】移动端跨平台技术发展
移动端跨平台技术一直在寻求研发效率动态性与性能体验间的平衡,本文归纳总结Hybrid技术、React Native技术、Flutter、小程序的技术演进与未来趋势。
2222 0
|
存储 SQL Prometheus
盘点市面上主流的时序数据库
万物互联时代,工业物联网产生的数据量比传统的信息化要多数千倍甚至数万倍,并且是实时采集、高频度、高密度,动态数据模型随时可变。传统数据库在对这些数据进行存储、查询、分析等处理操作时捉襟见肘,迫切需要一种专门针对时序数据来做优化的数据库系统,即时间序列数据库。
6993 0
盘点市面上主流的时序数据库
|
26天前
|
前端开发 Android开发 开发者
移动应用开发的未来:跨平台技术与原生系统的融合
随着移动互联网的蓬勃发展,移动应用已成为日常生活不可或缺的一部分。本文将深入探讨移动应用开发的新趋势——跨平台技术的崛起以及它与原生系统之间的融合。我们将分析当前市场上流行的跨平台框架,如React Native和Flutter,并讨论它们如何优化性能以匹敌原生应用。同时,我们也将着眼于移动操作系统的最新进展,特别是Android和iOS在兼容性、安全性和用户体验方面的创新。通过对未来技术趋势的预测,本文旨在为开发者和企业提供洞见,以便他们在不断变化的市场中保持竞争力。
|
2月前
|
移动开发 前端开发 JavaScript
主流跨平台开发技术对比
【2月更文挑战第1天】
71 3
|
3月前
|
JavaScript 前端开发 关系型数据库
2022 年有哪些流行的技术?
2022 年有哪些流行的技术?
|
11月前
|
前端开发 JavaScript
市面上的主流前端技术
前端技术是目前互联网行业中最热门和风口浪尖的技术之一。它是一种将用户在浏览器中看到的内容呈现出来的技术,就是网页背后的运作。随着技术的不断进步,市面上出现了越来越多的主流前端技术。下面,我将介绍一些常见的前端技术。
|
设计模式 开发框架 前端开发
十大最主流的PHP框架
十大最主流的PHP框架
213 0
|
机器学习/深度学习 存储 人工智能
2021 年最可能成为主流的10大发展趋势
  1、 OpenStack 认可度持续高涨   OpenStack[1]本质上是一个云操作平台(系统),它为管理员提供直观友好的控制面板,以便对大量的计算、存储和网络资源进行配置和监管。   目前,很多企业运用 OpenStack 平台搭建和管理云计算系统。得益于其灵活的生态系统、透明度和运行速度,OpenStack 越来越流行。相比其他替代方案,OpenStack 只需更少的花费便能轻松支持任务关键型应用程序。 但是,其复杂的结构以及其对虚拟化、服务器和大量网络资源的严重依赖使得不少企业对使用 OpenStack 心存顾虑。另外,想要用好 OpenStack,好的硬件支持和高水平的员
123 0