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

推荐订阅源

W
WeLiveSecurity
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
AI
AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
U
Unit 42
腾讯CDC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
H
Help Net Security
Recent Announcements
Recent Announcements
P
Privacy & Cybersecurity Law Blog
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Heimdal Security Blog
博客园 - 聂微东
S
Securelist
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
Cisco Talos Blog
Cisco Talos Blog

博客园 - AssionSoft

关于近期在网上看到很多招聘.NET开发的都要求懂ASP.NET MVC了 为什么?这到底是为什么?怎么会这样?天啊!因为什么啊? 面向销售人员和普通白领的个人SAAS服务软件大调查! 求职也是种无奈,早上搞了个求职Mail群发器! 求职真是个痛苦的过程! 白领理财计帐小软件,钱花的不明不白做个软件帮我理财! 性能陷井 北京.NET软件工程师求职,有招人的快来看看 使用电脑休息提醒专家第二版! 做的一个小程序,定时提醒休息。预防颈椎病人人有责! .net软件工程师求职(大连) 图片水印批量附加器(玩一玩,十年少) 换工作求职! 明星、炒作、FANS 最近开发智能网站发现的使用方法! 关于程序员的1号职业病-颈椎病 写了一个用于排序的存储过程,很笨很简单的代码! 毕业生找工作,能给个发展机会的请进来看看! 2007年11月8日,我的博客开通的日子!
面向对象开发中的对象构建(但是我们实际开发真的面向对象了吗?)
AssionSoft · 2009-01-19 · via 博客园 - AssionSoft

     向面对象开发,很好很强大。但是我们实际开发真的面向对象了吗?真的用到一些特性了吗?

     面向对象开发,首先就要脱离统着数据表找关系的模式了。一切都从对象(现实开始(当然要考虑你的对象的数据结构可行性,不过一般都是没有问题的。现实就是这样,最庞大的莫过于宇宙,但它也都是可描述的何况宇宙中的万物了)。下面通过一个示例来讨论一下。

     我们通过一个学校的关系来作为焦点(学校-班级-学生),说到这,大家可能就拍砖了,这么简单的关系。不就是一个一对多的关系吗?这样的数据表很容易实现嘛。确实,这样的关系不复杂可以说非常简单,不过话又说回来再复杂的关系不也是在这之上千变亿化了?话题不在于此我们转回……
    
     要实现这样一个关系我们可能就要建立三个对象了 school、class、student,具体的关系我们可以这样,表里的关系可能就是通过主从键建立的一对多的关系了,以至于建立对象的时候大家也还是保持这样的一对多的关系,以导至对象变成是描述表的了而不是描述现实世界了!这样面向对象还有何意义?数据查询的时候大家可以会通过对象关系或是建立出来一个新的“虚对象”来填充对象数据,这样是可以的,但不是很好的。(表的多对多关系转换到对象可以是虚对象来实现关系了)。

     这时大家不防回到现实中来,回想一下童年,回想一下自己的母校,我们美丽的校园(一个),学校里有好多不同的班级(多个),班级里面有好多我们戴着红领巾的同学(很多个),这样他们的关系也就出来了“一个学校可以有多个班级,一个班级可以有很多学生,一个班级只能属于一个学校同样一名学生只能属于一个班级”(注:这里不要想表那些关系,不要感觉它他很像,我们只观注现实),这样下面的对象就建立出来了:

school(name,address,List<class(name,address,school,List<student(name,sex,age,class,school>))
    这时我想找一名学生的基本信息,就可以student(name,sex,age)
    找一名学生的基本信息包托它的班级学校:sutdent(name,sex,age,class,school)
    找一个班级并知道这个班级所在的学校:class(name,address,school)
    找一个学校包括它所有的班级:school(name,address,List<class>)
    找一个学校所括它所有的学生:school(name,address,List<class(List<student>)>)
    等等我们都可以很灵活的就办到,到这里我们已经完全回忆起自己的母校了,突然发现自己的记忆力真棒(一个好的记忆方法(数据结构)和一个好的组织查询方法帮了很大的忙)。
    话题回到数据为操作上来,这些操作都很容易就可以实现了,一对多多对一的查询!

    等着拍砖了,等着骂我不要放到首页来(是看今天首页文章不多,不够大家看的嘛!)