惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
C
Check Point Blog
M
MIT News - Artificial intelligence
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
U
Unit 42
D
Docker
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
H
Help Net Security
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
Cloudbric
Cloudbric
Blog — PlanetScale
Blog — PlanetScale
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Troy Hunt's Blog
N
News | PayPal Newsroom
V2EX - 技术
V2EX - 技术
H
Heimdal Security Blog
S
Security @ Cisco Blogs
V
Visual Studio Blog
The Last Watchdog
The Last Watchdog
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
C
Cyber Attacks, Cyber Crime and Cyber Security
Last Week in AI
Last Week in AI
爱范儿
爱范儿
博客园 - 聂微东
S
Securelist
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Vulnerabilities – Threatpost
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
O
OpenAI News
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - Tiu

2010走了,又是一年,留个脚印 Commerce Server 2007 随笔一 2009眨眼间过去了,留个纪念 asp.net ajax随笔二 asp.net中慎用static全局变量 asp.net ajax随笔一 收集的关于依赖注入及Unity application block入门的一些资料 2008最后一篇:总结与展望 文件操作类简介 防止页面在提交的过程中多次点击按钮 第一次使用SQLCLR C#网络编程随笔一 装AJAX.NET 1.0的环境,我遇到个问题,进来解答下 关于邮件群发 XML学习一 asp.net窗中的两个Form问题 URL重写入门 动态从数据库中选择Top 个数 关于在数据层返回SqlDataReader
编写类和子程序的几个原则
Tiu · 2006-12-10 · via 博客园 - Tiu

      以下的原则是摘自《代码大全(第二版)》,放在这里提醒自己写程序时尽量的优化。当然仁者见仁,智者见智,这些东西不一定都适合,只是当作参照而已,这里没有针对具体的语言,还得具体情况具体分析。括号内为自己的理解,如有错误,还请指出。
     在程序里创建类的原因:
            1.对现实世界的对象建模(如:文章类,用户类)
            2.对抽象对象进行建模(如:类型:也许是文章类型或用户类型)
            3.降低复杂度
            4.隔离复杂度
            5.隐藏实现细节
            6.限制变化所影响的范围(经常变化的部分放到一个或几个类中,如业务逻辑)
            7.隐藏全局数据
            8.让参数传递更顺畅(比如说文章,包括标题、作者、时间、内容等等,在读或写文章时可以把文章的对象作为参数传递)
            9.创建中心控制点 (如把对数据库的操作放到单独的类中)
            10.让代码更易于重用
            11.为程序族做计划
            12.把相关操作放在一起
            13.实现特定的重构
   应该避免的类:1.万能类 2.消除无关紧要的类:如只包括数据不包括行为的类,是否真的有必要?3.避免用动词命名的类,如只有行为没有数据
     创建子程序的理由:
               1.降低复杂度
               2.引入中间的、易懂的抽象(比如:上传文件时问了得到文件名称,要写如下代码:

            while(filename.IndexOf("\\")>=0)
            
{    
                filename
=filename.Substring(filename.IndexOf("\\")+1,filename.Length-1-filename.IndexOf("\\"));
            }

这里我们可以把这段代码单独放到一个方法中:GetFileName(),这样以后在用到的时候直接调用这个方法就行了。
               3.避免代码重复
               4.支持子类化(即在派生类重写的时候)
               5.隐藏顺序(如果两个动作必须一前一后发生,可放到一个方法中)
               6.隐藏指针操作
               7.提高可移植性
               8.简化复杂的逻辑判断(如判断用户输入是否合法)
               9.改善性能(子程序中的算法可以随时改变,只要其返回保持一致,就不会影响其他地方的调用)