领导喜欢什么样的员工| 阿胶是什么| 痔疮属于什么科室| 头发掉的多是什么原因| 抗ccp抗体高说明什么| 鼻梁骨骨折属于什么伤| 一什么柳树| 短发女人吸引什么男人| 阳痿吃什么药| 售馨是什么意思| 大小便失禁是什么意思| 衣原体感染用什么药| 口臭是什么病| 泌尿科看什么病| 艾滋病什么时候能查出来| 增生性贫血是什么意思| 18k金是什么金| 脑梗吃什么最好| 阳痿早泄吃什么药最好| 偏头疼是什么原因引起| 佛龛是什么意思| circles是什么意思| 为什么不能抠肚脐眼| 什么是扁平疣| 火命适合什么颜色| 发扬什么词语搭配| 17数字代表什么意思| 微信被拉黑后显示什么| 家门不幸是什么意思| 左手臂有痣代表什么| 取卵后需要注意什么| 小孩趴着睡觉是什么原因| 504是什么错误| 滴虫病女性有什么症状| 中东为什么叫中东| 去非洲要打什么疫苗| 尿气味很重是什么原因| 转氨酶偏高吃什么药| 清创是什么意思| 可喜可贺是什么意思| 69年鸡是什么命| 百衲衣是什么意思| s925是什么| 螃蟹喜欢吃什么食物| 男人交生育保险有什么用| 移花接木的意思是什么| 降血脂喝什么茶最好| 肝钙化是什么意思| 莞尔一笑什么意思| 小儿惊痫是什么症状| 阳虚吃什么药效果最好| 肺活量是什么意思| 指甲盖有竖纹是什么原因| 护士是干什么的| 肛门指检能查出什么| 为什么胃疼| 大什么| 痛风不能吃什么| 绿豆吃多了有什么坏处| 重日是什么意思| 什么蔬菜补铁| 乳头很痒是什么原因| 胃溃疡吃什么食物| naps是什么意思| 牛跟什么相冲| wtf什么意思| 打喷嚏流鼻涕属于什么感冒| 三角形为什么具有稳定性| 微信证件号是什么| 子宫肌瘤吃什么好| 孩子为什么要躲百天| 什么是色盲| 豪情万丈什么意思| 中央候补委员是什么级别| 砷是什么东西| 毕业送什么花| 阴虱长什么样| 什么是强迫症| 脑供血不足用什么药| 猪狗不如是什么生肖| 胰腺疼痛吃什么药| 墨菲定律是什么意思| 民营企业和私营企业有什么区别| 耳道炎用什么药最有效| 怀孕初期有什么反应| 屁特别多是什么原因| 依从性是什么意思| 邪气入体是什么症状| 剪什么样的发型好看| 减肥吃什么瘦得快| 城隍庙求什么最灵| 腐男是什么意思| 晨对什么| 什么东西护肝养肝| 青年补钙吃什么好| 乌鸡汤放什么补气补血| 性激素检查是查什么| 吃什么营养神经| 梦见朋友怀孕了是什么意思| 感冒有黄痰是什么原因| 脖子上长扁平疣是什么原因| 家的含义是什么| 三点水翟读什么| 睡眠不好去医院挂什么科| 张起灵和吴邪什么关系| 男生来大姨夫是什么意思| 为什么睡觉会打呼| 长命百岁是什么意思| 掌门人是什么意思| 游离三碘甲状腺原氨酸是什么意思| 气血虚吃什么好| 减肥吃什么药效果最好| 低血钾吃什么| 今年三十岁属什么生肖| 回头是岸是什么生肖| 正骨挂什么科| 血液净化是什么意思| 鞋履是什么意思| 什么是金砖国家| 供奉是什么意思| 脚心抽筋是什么原因引起的| 低血糖的症状是什么| 增强抵抗力免疫力吃什么| 6月22日什么星座| 甘草有什么功效| 泡脚时间长了有什么坏处| 蛇吃什么东西| 来大姨妈吃什么对身体好| 梦见下暴雨是什么意思| 痛风可以吃什么鱼| 全自动洗衣机漏水是什么原因| 早孕试纸什么时候测最准确| 二刷是什么意思| 喝什么茶清肺效果最好| 关帝是什么神| 白头发吃什么能变黑| 知了猴是什么东西| 毓婷和金毓婷有什么区别| 骨折吃什么消炎药| 安之若素是什么意思| 寒酸是什么意思| 有什么寓言故事| 赵云属什么生肖| 白带是绿色的是什么原因| 手麻是什么病的预兆| 梅雨季节什么时候结束| 飞蚊症滴什么眼药水| 19时是什么时辰| 同比和环比是什么意思| 臭鳜鱼是什么鱼| 青光眼是什么意思| 心识是什么意思| 为什么会胃酸| 牙龈肿痛吃什么消炎药| 今天生肖冲什么| 心肌劳损是什么意思| 石膏的主要成分是什么| qq会员有什么用| 男人梦到蛇预示着什么| 邪魅一笑是什么意思| 迁就什么意思| 狗怕什么动物| 拉缸是什么意思| 男性硬下疳是什么样子| 肌酐是检查什么的| 吃肠虫清要注意什么| 什么学习机好| 胃不好适合吃什么食物| 舌苔紫色是什么原因| 心梗吃什么药效果好| 什么是ct| 梵音是什么意思| 觅食是什么意思| 月经喝酒有什么影响| 西布曲明是什么| 孕妇不能吃什么水果| 为什么会长火疖子| 宫外孕和宫内孕有什么区别| 白细胞减少有什么症状| 秦始皇的原名叫什么| 菩萨是什么意思| 据点是什么意思| 急性阑尾炎可以吃什么| 柠檬和什么不能一起吃| hpv感染是什么| 什么的大娘| 努嘴是什么意思| 耐信是什么药| 请佛像回家有什么讲究| 10月7日是什么星座| 撰文是什么意思| 老是放臭屁是什么原因| 什么血型| 十九朵玫瑰花代表什么意思| 孕妇上火了吃什么降火最快| 肛周湿疹用什么药| 7月20日什么星座| 2023年是什么生肖年| 血清是什么| 县教育局局长是什么级别| 老虎头衣服是什么牌子| 发物有什么| 狮子座跟什么星座最配| 三个小是什么字| 嗳气吃什么药最有效| 拉肚子是什么原因导致的| 金牛座是什么星象| 乙肝小三阳是什么意思| 打脸是什么意思| 拔罐后发痒是什么原因| 阿司匹林主治什么病| 黄痰是什么原因| 蜈蚣代表什么生肖| 厕所里应该摆什么花| exr是什么牌子| 颔是什么部位| 翻来覆去的覆什么意思| 2005年是什么命| 螃蟹吃什么| 夏天防中暑备什么药| 突然头晕眼花站不稳是什么原因| 鼠入牛角是什么动物| mcv偏低是什么意思| 养精蓄锐是什么意思| 什么奶不能喝| 酸入肝是什么意思| 为什么总放屁| 优雅知性是什么意思| daily是什么意思| 什么叫肾功能不全| 一去不返是什么生肖| 107是什么意思| 仁义道德是什么意思| 腹黑是什么意思| 京东自营店是什么意思| 蛤蚧是什么动物| 命里缺金取什么名字好| 开庭前家属做什么准备| 宫寒吃什么| 什么血型容易溶血| 开端是什么意思| 醒酒器有什么作用| 马来西亚人为什么会说中文| 晕车吃什么好| 什么杯子不能装水| 打卤面都有什么卤| 宦游人是什么意思| 法图麦在回族什么意思| 左旋肉碱是什么东西| 1月29日是什么星座| 为什么会长息肉| 脚气涂什么药膏| 肚子疼是为什么| 梦到捡到钱是什么预兆| 3月31号什么星座| 手上为什么会有小水泡| 仙风道骨指什么生肖| 小暑吃黄鳝有什么好处| 鱼子酱是什么| 为什么会得霉菌感染| 肚子咕咕叫吃什么药| 急于求成是什么意思| 女人左眼角有痣代表什么| 什么是生粉| 百度Jump to content

宝安雕章龙岗雕章13632505702龙华雕章广州雕章

From Wikipedia, the free encyclopedia
百度   几百个地方养犬规定为何拴不住一只狗?  从管理方来说,养犬问题折射出不同人群的权利和利益如何协调的问题,甚至折射出利益多元下城市怎样管理才更科学的问题。

In computer programming, a software framework is a software abstraction that provides generic functionality which developers can extend with custom code to create applications. It establishes a standard foundation for building and deploying software, offering reusable components and design patterns that handle common programming tasks within a larger software platform or environment.

Unlike libraries where developers call functions as needed, frameworks implement inversion of control by dictating program structure and calling user code at specific points, while also providing default behaviors, structured extensibility mechanisms, and maintaining a fixed core that accepts extensions without direct modification. Frameworks also differ from regular applications that can be modified (like web browsers through extensions, video games through mods), in that frameworks are intentionally incomplete scaffolding meant to be extended through well-defined extension points and following specific architectural patterns.

Software frameworks may include support programs, compilers, code libraries, toolsets, and APIs that bring together all the different components to enable development of a project or system.

Comparison to libraries

[edit]

Software frameworks differ from standard libraries in key ways:

  • Inversion of control: Unlike libraries, where user code controls the program’s flow of execution, frameworks dictate the program’s structure, calling user code at specific points (e.g., through predefined templates or hooks). This is usually achieved with the Template Method Pattern.
  • Default behaviour: Frameworks provide pre-implemented functionality (e.g., standard features or workflows) that works out-of-the-box and can be used as-is or lightly customized, often within a predefined structure. Libraries, by contrast, require user code to build and configure functionality from scratch. A framework's default behavior can be provided with the invariant methods of the Template Method Pattern in an abstract class.
  • Extensibility: Frameworks enable developers to add new functionality or significantly modify (or override) behavior through structured mechanisms like hooks or APIs. Libraries allow extensibility, but it is unstructured, relying on user code to integrate functions without predefined integration points. A framework's extensibility is usually achieved by a hook method in a subclass that overrides a template method in the superclass
  • Non-modifiable framework code: Framework core code is generally fixed, accepting user extensions (e.g., plugins or subclasses) without allowing modifications to the framework itself.

Rationale

[edit]

The designers of software frameworks aim to facilitate software developments by allowing designers and programmers to devote their time to meeting software requirements rather than dealing with the more standard low-level details of providing a working system, thereby reducing overall development time.[1] For example, a team using a web framework to develop a banking website can focus on writing code particular to banking rather than the mechanics of request handling and state management.

Frameworks often add to the size of programs, a phenomenon termed "code bloat". Due to customer-demand-driven applications needs, both competing and complementary frameworks sometimes end up in a product. Further, due to the complexity of their APIs, the intended reduction in overall development time may not be achieved due to the need to spend additional time learning to use the framework; this criticism is clearly valid when a special or new framework is first encountered by development staff.[citation needed] If such a framework is not used in subsequent job taskings, the time invested in learning the framework can cost more than purpose-written code familiar to the project's staff; many programmers keep copies of useful boilerplate code for common needs.

However, once a framework is learned, future projects can be faster and easier to complete; the concept of a framework is to make a one-size-fits-all solution set, and with familiarity, code production should logically rise. There are no such claims made about the size of the code eventually bundled with the output product, nor its relative efficiency and conciseness. Using any library solution necessarily pulls in extras and unused extraneous assets unless the software is a compiler-object linker making a tight (small, wholly controlled, and specified) executable module.

The issue continues, but a decade-plus of industry experience[citation needed] has shown that the most effective frameworks turn out to be those that evolve from re-factoring the common code of the enterprise, instead of using a generic "one-size-fits-all" framework developed by third parties for general purposes. An example of that would be how the user interface in such an application package as an office suite grows to have common look, feel, and data-sharing attributes and methods, as the once disparate bundled applications, grow unified into a suite that is tighter and smaller; the newer/evolved suite can be a product that shares integral utility libraries and user interfaces.

This trend in the controversy brings up an important issue about frameworks. Creating a framework that is elegant, versus one that merely solves a problem, is still rather a craft than a science. "Software elegance" implies clarity, conciseness, and little waste (extra or extraneous functionality, much of which is user-defined). For those frameworks that generate code, for example, "elegance" would imply the creation of code that is clean and comprehensible to a reasonably knowledgeable programmer (and which is therefore readily modifiable), versus one that merely generates correct code. The elegance issue is why relatively few software frameworks have stood the test of time: the best frameworks have been able to evolve gracefully as the underlying technology on which they were built advanced. Even there, having evolved, many such packages will retain legacy capabilities bloating the final software as otherwise replaced methods have been retained in parallel with the newer methods.

Examples

[edit]

Software frameworks typically contain considerable housekeeping and utility code in order to help bootstrap user applications, but generally focus on specific problem domains, such as:

Architecture

[edit]

According to Pree,[7] software frameworks consist of frozen spots and hot spots. Frozen spots define the overall architecture of a software system, that is to say its basic components and the relationships between them. These remain unchanged (frozen) in any instantiation of the application framework. Hot spots represent those parts where the programmers using the framework add their own code to add the functionality specific to their own project.

In an object-oriented environment, a framework consists of abstract and concrete classes. Instantiation of such a framework consists of composing and subclassing the existing classes.[8]

The necessary functionality can be implemented by using the Template Method Pattern in which the frozen spots are known as invariant methods and the hot spots are known as variant or hook methods. The invariant methods in the superclass provide default behaviour while the hook methods in each subclass provide custom behaviour.

When developing a concrete software system with a software framework, developers utilize the hot spots according to the specific needs and requirements of the system. Software frameworks rely on the Hollywood Principle: "Don't call us, we'll call you."[9][10] This means that the user-defined classes (for example, new subclasses) receive messages from the predefined framework classes. Developers usually handle this by implementing superclass abstract methods.

See also

[edit]

References

[edit]
  1. ^ "Framework". DocForge. Archived from the original on 7 October 2018. Retrieved 15 December 2008.
  2. ^ Vlissides, J M; Linton, M A (1990), "Unidraw: a framework for building domain-specific graphical editors", ACM Transactions on Information Systems, 8 (3): 237–268, doi:10.1145/98188.98197, S2CID 11248368
  3. ^ Johnson, R E (1992), "Documenting frameworks using patterns", Conference proceedings on Object-oriented programming systems, languages, and applications - OOPSLA '92, ACM Press, pp. 63–76, doi:10.1145/141936.141943, ISBN 0201533723, S2CID 604969
  4. ^ Birrer, A; Eggenschwiler, T (1993), "Proceedings of the European conference on object-oriented programming", Frameworks in the financial engineering domain: an experience report, Springer-Verlag, pp. 21–35
  5. ^ Hill, C; DeLuca, C; Balaji, V; Suarez, M; da Silva, A (2004), "Architecture of the Earth System Modeling Framework (ESMF)", Computing in Science and Engineering, 6: 18–28, doi:10.1109/MCISE.2004.1255817, S2CID 9311752
  6. ^ Gachet, A (2003), "Software Frameworks for Developing Decision Support Systems – A New Component in the Classification of DSS Development Tools", Journal of Decision Systems, 12 (3): 271–281, doi:10.3166/jds.12.271-280, S2CID 29690836
  7. ^ Pree, W (1994), "Meta Patterns: A Means for Capturing the Essentials of Reusable Object-Oriented Design", Proceedings of the 8th European Conference on Object-Oriented Programming, Lecture Notes in Computer Science, 821, Springer-Verlag: 150–162, CiteSeerX 10.1.1.74.7935, doi:10.1007/BFb0052181, ISBN 978-3-540-58202-1
  8. ^ Buschmann, F (1996), Pattern-Oriented Software Architecture Volume 1: A System of Patterns. Chichester, Wiley, ISBN 978-0-471-95869-7
  9. ^ Larman, C (2001), Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd ed.), Prentice Hall, ISBN 978-0-13-092569-5
  10. ^ Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1994). Design Patterns. Addison-Wesley. ISBN 0-201-63361-2.
[edit]
什么动物的血是蓝色的 脸颊两边长痘痘是什么原因引起的 什么情况下需要做肠镜检查 水字五行属什么 相伴是什么意思
中午12点半是什么时辰 三醋酯纤维是什么面料 莱卡是什么面料 一清二白是什么意思 电子邮件地址是什么意思
体寒吃什么 人造石是什么材料做的 减肥什么时候喝牛奶 判决书什么时候生效 venus是什么星球
力不从心什么意思 近视是什么原因造成的 食之无味什么意思 吃什么药不能献血 痢疾是什么症状
拉水便是什么原因hcv9jop0ns5r.cn 泼皮是什么意思hcv9jop3ns6r.cn 头顶头发稀少是什么原因hcv9jop0ns2r.cn resp是什么hcv8jop7ns6r.cn 吸烟有害健康为什么国家还生产烟hcv8jop6ns8r.cn
附件炎是什么sanhestory.com 婴儿拉肚子是什么原因造成的hcv8jop5ns8r.cn 心衰是什么病hcv8jop9ns6r.cn 鹞是什么意思hcv8jop6ns9r.cn 今天开什么hcv8jop5ns4r.cn
皮卡丘站起来变成了什么jiuxinfghf.com 为什么打喷嚏会漏尿gangsutong.com 五一年属什么生肖hcv8jop5ns0r.cn 腹泻吃什么食物hcv8jop8ns8r.cn 海松茸是什么东西hcv8jop4ns8r.cn
儿童身高矮小挂什么科zsyouku.com 冬虫夏草到底是什么hcv8jop6ns3r.cn 检出限是什么意思hcv9jop3ns3r.cn 水痘不能吃什么kuyehao.com 扁平化管理是什么意思hcv9jop6ns5r.cn
百度