没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Design Patterns in .NET: Reusable Approaches in C# and F# for
Object- Oriented Software Design
ISBN-13 (pbk): 978-1-4842-4365-7 ISBN-13 (electronic): 978-1-4842-4366-4
https://doi.org/10.1007/978-1-4842-4366-4
Copyright © 2019 by Dmitri Nesteruk
is work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microlms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benet of the trademark owner, with no
intention of infringement of the trademark.
e use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identied as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. e publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Joan Murray
Development Editor: Laura Berendson
Coordinating Editor: Jill Balzano
Cover designed by eStudioCalamar
Cover image designed by Freepik (www.freepik.com)
Distributed to the book trade worldwide by Springer Science+Business Media NewYork, 233
Spring Street, 6th Floor, NewYork, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail
orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a
California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc
(SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail rights@apress.com, or visit http://www.apress.
com/rights-permissions.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub via the book’s product page, located at www.apress.
com/9781484243657. For more detailed information, please visit http://www.apress.com/
source-code.
Printed on acid-free paper
DmitriNesteruk
St. Petersburg, c.St-Peterburg, Russia
iii
Part I: Introduction ����������������������������������������������������������������������1
Chapter 1: The SOLID Design Principles �����������������������������������������������3
Single Responsibility Principle ������������������������������������������������������������������������������3
Open-Closed Principle�������������������������������������������������������������������������������������������6
Liskov Substitution Principle �������������������������������������������������������������������������������14
Interface Segregation Principle ��������������������������������������������������������������������������17
Dependency Inversion Principle �������������������������������������������������������������������������� 22
Chapter 2: The Functional Perspective �����������������������������������������������27
Function Basics ���������������������������������������������������������������������������������������������������27
Functional Literals in C# �������������������������������������������������������������������������������������30
Storing Functions in C# ���������������������������������������������������������������������������������������30
Functional Literals in F# ��������������������������������������������������������������������������������������33
Composition ��������������������������������������������������������������������������������������������������������35
Functional-Related Language Features ��������������������������������������������������������������36
Part II: Creational Patterns ��������������������������������������������������������39
Chapter 3: Builder �������������������������������������������������������������������������������41
Scenario �������������������������������������������������������������������������������������������������������������� 41
Simple Builder �����������������������������������������������������������������������������������������������������44
Table of Contents
About the Author ���������������������������������������������������������������������������������xi
Introduction ���������������������������������������������������������������������������������������xiii
iv
Fluent Builder ������������������������������������������������������������������������������������������������������45
Communicating Intent �����������������������������������������������������������������������������������������46
Composite Builder �����������������������������������������������������������������������������������������������48
Builder Parameter �����������������������������������������������������������������������������������������������52
Fluent Interface Inheritance �������������������������������������������������������������������������������� 55
DSL Construction in F# ����������������������������������������������������������������������������������������59
Summary�������������������������������������������������������������������������������������������������������������61
Chapter 4: Factories ���������������������������������������������������������������������������63
Scenario �������������������������������������������������������������������������������������������������������������� 63
Factory Method ��������������������������������������������������������������������������������������������������� 65
Factory ���������������������������������������������������������������������������������������������������������������� 67
Inner Factory �������������������������������������������������������������������������������������������������������67
Logical Separation ����������������������������������������������������������������������������������������� 69
Abstract Factory ��������������������������������������������������������������������������������������������������69
Functional Factory ����������������������������������������������������������������������������������������������72
Summary�������������������������������������������������������������������������������������������������������������74
Chapter 5: Prototype ���������������������������������������������������������������������������77
Deep vs� Shallow Copying �����������������������������������������������������������������������������������77
ICloneable Is Bad ������������������������������������������������������������������������������������������������78
Deep Copying with a Special Interface ���������������������������������������������������������������80
Deep Copying Objects �����������������������������������������������������������������������������������������81
Duplication via Copy Construction ����������������������������������������������������������������������83
Serialization ��������������������������������������������������������������������������������������������������������84
Prototype Factory ������������������������������������������������������������������������������������������������86
Summary�������������������������������������������������������������������������������������������������������������88
Table of ConTenTsTable of ConTenTs
剩余355页未读,继续阅读
资源评论
janne2008
- 粉丝: 1
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- DIN 17178-1986 特殊要求细晶粒结构钢焊接.pdf
- DIN 17174-1985 低温用焊接钢管.pdf
- DIN 17178-1986 中文版 特殊要求细晶粒结构钢焊接圆形钢管 交货技术条件.pdf
- DIN 32676-2001 饮食业、化工业和医药业用配件.不锈钢管夹具接头.焊接式(德文原版).pdf
- DIN 28181-1985 管束式热交换器的焊接钢管.尺寸.尺寸偏差和材料.pdf
- DIN 86037-1-1995 铜镍合金管道的活套法兰和焊接凸肩.第1部分组装.pdf
- DIN 86037-2-1995 铜镍合金管道的活套法兰和焊接凸肩.第2部分焊接凸肩.pdf
- DIN 46234-1980 非焊接接线端.铜导线用无绝缘套管环形连接.pdf
- DIN 86037-3-1995 铜镍合金管道的活套法兰和焊接凸肩.第3部分活套法兰.pdf
- DIN 86088-1996 铜镍合金制管道焊接异型件.三通.pdf
- DIN EN 499-1995 焊料.非合金钢和细粒钢的手动金属电弧焊接用涂剂焊条.分类.pdf
- DIN 86057-1976 管闷头连接件用法兰(套环)的焊接.pdf
- DIN EN 1011-1-2002 中文版 焊接.焊接金属材料的建议.第1部分电弧焊接通则.pdf
- DIN EN 1043-1-1996 金属材料焊接的破坏试验 硬度测试 第1部分:电弧焊接连接件的硬度试验.pdf
- DIN EN 1435-2002 焊缝的无损检验.焊接接头的X光照相检验.pdf
- DIN EN 1708-1-1999 中文版 焊接—钢焊接接头的基本细节 第1部分:承压构件.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功