设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)是软件工程领域有关设计模式的一本书,提出和总结了对于一些常见软件设计问题的标准解决方案,称为软件设计模式。该书作者是埃里希·伽瑪Richard Helm英语Richard HelmRalph Johnson英语Ralph JohnsonJohn Vlissides英语John Vlissides,后以“四人帮”(Gang of FourGoF[1]著称,书中的设计模式也被称為「四人帮设计模式」(Gang of Four design patterns)。

Design Patterns:
Elements of Reusable Object-Oriented Software
副書名Elements of Reusable Object-Oriented Software 编辑维基数据
作者「四人幫」:
埃里希·伽瑪,
Richard Helm英语Richard Helm,
Ralph Johnson英语Ralph Johnson (computer scientist),
John Vlissides英语John Vlissides
語言英语 编辑维基数据
主题设计模式, 软件工程, 面向对象程序设计
类型非虛構作品随笔 编辑维基数据
出版資訊
出版机构艾迪生韦斯利
出版時間1994
出版地點 美国
頁數395
權威控制
ISBN0-201-63361-2
OCLC31171684
杜威十进分类法005.1/2 20
国会图书馆分类法QA76.64 .D47 1995

简介

编辑

基于作者的经验,本书提出良好的面向对象软件设计所需方略为:

创建型模式

编辑

创建型模式是创建对象而不直接实例化对象的设计模式。这给予编程者在决定那些对象于给定情况下需要被创建时更大的灵活性。

结构型模式

编辑

结构型模式关注类和对象的合成。本书使用继承来合成接口,并且定义了合成对象来获得新功能的方式。

行为型模式

编辑

行为型模式大多特别关注于对象之间的通信。

参考文献

编辑
  1. ^ Gang Of Four页面存档备份,存于互联网档案馆), Content Creation Wiki for People Projects And Patterns in Software Development.

外部链接

编辑

📚 Artikel Terkait di Wikipedia

模板方法模式

chessGame.initializeGame(); chessGame.playOneGame(1); //call template method } } The Template Method design pattern - Structure. w3sDesign.com. [2017-08-12]. 

模板元編程

定,無需變動的多型行為。那麼一來,奇怪的遞迴模板樣式(Curiously Recurring Template Pattern;CRTP)便可被用來達成靜態多型。如下例: template <class Derived> struct base { void interface() { // ...

烏茲鋼

& Pendray, A.H.,「Method of making "Damascus" blades」,发表于9 February 1993  (页面存档备份,存于互联网档案馆) template:Chera dynasty topics(英语:template:Chera dynasty topics)

惰性初始化

惰性初始化技術:使用惰性初始化,實例化物件於其第一次被要求之時。 在軟件設計實踐中經常還會結合上第三個構想: 多例模式(英语:Multiton pattern):將實例存儲在一個映射中,在以“相同”的參數要求一個實例之時,返回“同一個”單例,有人將這種參數化或為單例註冊類型名字的“惰性工廠”稱為惰性初始化模式。

Mixin

methods are a feature of the standard method combination. Other method combinations are provided. An example is the + method combination, where the resulting

ASP.NET Core MVC

內加入路由設定即可,但官方還是建議至少加入預設路由 (default routes),例如: app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); ASP.NET Core MVC 可同時支援 MVC

C♯

class MyClass1 { public void MyMethod1() { // implementation } } file2.cs: public partial class MyClass1 { public void MyMethod2() { // implementation } }

背向散射電子繞射技術

Vivian; Wilkinson, Angus J.; Marrow, T. James. An iterative method for reference pattern selection in high-resolution electron backscatter diffraction