25 热度

My 5 Favorite Software Design Principles

Here are 5 of my favorite software design principles that have really helped my career. It not only helped me build better software but helped me understand the craft and relieve a lot of frustration.

收录时间: 2019-08-13
分类: 设计模式
贡献者: Rector
48 热度

Object-Oriented Programming

OOP is considered by many to be the crown jewel of computer science. The ultimate solution to code organization. The end to all our problems. The only true way to write our programs. Bestowed upon us by the one true God of programming himself…

收录时间: 2019-07-26
分类: 设计模式
贡献者: Rector
86 热度

C# Design Patterns: The Strategy Pattern

In this article I’m going to introduce and talk about the Strategy Pattern. It’s a common design pattern that helps your program maintain flexibility in the midst of diverse requirements.

收录时间: 2019-06-27
分类: 设计模式
贡献者: Rector
91 热度

Refactoring switch case statement into strategy design pattern

A strategy design pattern is the most commonly used design pattern in computer programming. In this post, we’ll refactor a switch case into a strategy design pattern. We’ll start with a basic switch case statement and then we’ll gradually refactor the code into strategy design pattern.

收录时间: 2019-04-19
分类: 设计模式
贡献者: Rector
123 热度

C#单例类的实现

C#单例类的实现单例类保证一个类全局仅有一个实例,并提供一个全局访问点,由于只能生成一个实例,因此我们必须把构造函数设为私有函数以禁止他人创建实例。实现1:懒汉式,线程不安全该实现没有额外开销,不要求线程安全的情况下可以使用:public class Singleton1{private static Singleton1 instance = null;private Singleton...

收录时间: 2019-04-11
分类: 设计模式
贡献者: Rector
118 热度

C# Design Patterns - Strategy

The Strategy design pattern is a behavioral design pattern which allows us to define different functionalities, put each functionality in a separate class and make their objects interchangeable. In other words, we have a main Context object that holds a reference towards a Strategy object and delegates it by executing its functionality. If we want to change the way the Context performs its work, we can just replace the current Strategy object with another one.

收录时间: 2019-04-09
分类: 设计模式
贡献者: Rector
AD 友情赞助
131 热度

C# Design Patterns - Command Design Pattern

The Command pattern is a behavioural design pattern that we can use to turn a request into an object which contains all the information about the request. The Command design pattern is quite popular in C#, especially when we want to delay or queue a request’s execution or when we want to keep track of our operations. Furthermore, this possibility to keep track of our operations gives us the opportunity to undo them as well.

收录时间: 2019-04-02
分类: 设计模式
贡献者: Rector
136 热度

C# Design Patterns - Decorator Design Pattern

In this article, we are going to talk about another structural C# design pattern, the Decorator Design Pattern. We are going to learn, how to implement this pattern in our project and what we can get by doing that. The source code is available at the Decorator Design Pattern – Source Code.

收录时间: 2019-03-27
分类: 设计模式
贡献者: Rector
350 热度

C#设计模式:六大原则(上)

面向对象设计原则,是一种指导思想,在程序设计过程中,要尽量的去遵守这些原则,用于解决面向对象设计中的可维护性,可复用性以及可扩展性。常用的,就是我们日常所说的6大原则,分别是:单一职责(SRP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)、迪米特法则(LOD)、开闭原则(OCP)。下面就来分别说说这些原则:一、 单一职责(Single Reponsibility P...

收录时间: 2018-09-18
分类: 设计模式
贡献者: Rector
296 热度

Strategy Pattern Implementations In C#: Basic To Advanced

Let's look at some different ways you could implement the strategy pattern in C#. First, I'd like to briefly mention why we care about design patterns and where the strategy pattern fits in. Why Should I Know The Strategy Pattern? Understanding design patterns is a vital skill to possess as a software developer and/or software architect. If you don't, then you end up

收录时间: 2018-08-28
分类: 设计模式
贡献者: Rector
376 热度

【设计模式】适配器模式 Adapter Parttern

【设计模式】适配器模式 Adapter Parttern2018-08-08 08:37 by 蓝之风, ... 阅读, ... 评论, 收藏, 编辑适配器模式在软件开发界使用及其广泛,在工业界,现实中也是屡见不鲜。比如手机充电器,笔记本充电器,广播接收器,电视接收器等等。都是适配器。 适配器主要作用是让本来不兼容的两个事物兼容和谐的一起工作。比如, 通常我们使用的交流电都是220v,但...

收录时间: 2018-08-08
分类: 设计模式
贡献者: Rector
408 热度

依赖注入[3]: 依赖注入模式

IoC主要体现了这样一种设计思想:通过将一组通用流程的控制权从应用转移到框架中以实现对流程的复用,并按照“好莱坞法则”实现应用程序的代码与框架之间的交互。我们可以采用若干设计模式以不同的方式实现IoC,比如我们在《依赖注入[2]: 基于IoC的设计模式》介绍的模板方法、工厂方法和抽象工厂,接下来我们介绍一种更为有价值的IoC模式,即依赖注入(DI:Dependency Injection,以下简称...

收录时间: 2018-07-27
分类: 设计模式
贡献者: Rector
407 热度

依赖注入[2]: 基于IoC的设计模式

依赖注入[2]: 基于IoC的设计模式正如我们在《控制反转》提到过的,很多人将IoC理解为一种“面向对象的设计模式”,实际上IoC自身不仅与面向对象没有必然的联系,它也算不上是一种设计模式。一般来讲,设计模式提供了一种解决某种具体问题的方案,但是IoC既没有一个针对性的问题领域,其自身没有提供一种可实施的解决方案,所以我更加倾向于将IoC视为一种设计原则。实际上很多我们熟悉的设计模式背后采用了Io...

收录时间: 2018-07-26
分类: 设计模式
贡献者: Rector
346 热度

【设计模式】工厂方法模式 Factory Method Pattern

在简单工厂模式中产品的创建统一在工厂类的静态工厂方法中创建,体现了面形对象的封装性,客户程序不需要知道产品产生的细节,也体现了面向对象的单一职责原则(SRP),这样在产品很少的情况下使用起来还是很方便, 但是如果产品很多,并且不断的有...

收录时间: 2018-07-25
分类: 设计模式
贡献者: Rector
395 热度

设计模式(十八)—— 中介者模式

模式简介用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。通常情况下,应用程序由许多类组成,随着类数量不断增加,系统变得难以维护,主要体现在类之间的交互变得更加复杂,难以理解,修改其中一个类可能会影响到其他的类,导致整个系统崩溃。想象机场控制塔控制飞机起飞降落的过程,飞机降落前先与机场控制塔通信,控制塔通知其它飞机...

收录时间: 2018-07-11
分类: 设计模式
贡献者: Rector
AD 友情赞助
390 热度

单件模式(C#)

单件模式保证一个类只有唯一一个实例,并提供一个全局访问点。《设计模式——可复用面向对象软件的基础》中是这样定义的: 类自身保存了该类的实例对象(自己创建实例),通过截取创建新实例的请求保证没有其他新实例被创建(保证实例唯一),并且提供一个全局访问该实例对象的方法(对外提供唯一访问点),这就是Singleton模式。 常用的场景如:系统日志记录器,系统配置管理器,模态窗口等等。 单件模式也允许子类继承,目前未接触到实际应用,暂无具体了解,所以下面的介绍均不考虑 子类扩展的情况。

收录时间: 2018-07-10
分类: 设计模式
贡献者: Rector
353 热度

设计模式(十七)—— 迭代器模式

提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。一个聚合对象,应该提供一个方法让用户访问它的元素,并且不暴露其内部结构。遍历的方式可能多种多样,我们不希望在这个聚合类中定义各种遍历的方法。这种情况下,就可以使用迭代器模式将对列表的访问和遍历从列表对象中分离出来并放入一个迭代器对象中。结构分析UML类图角色说明Aggregate抽象聚合类,定义一个创建相应迭代器...

收录时间: 2018-06-29
分类: 设计模式
贡献者: Rector
447 热度

24种设计模式及案例

创建型模式工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通...

收录时间: 2018-06-28
分类: 设计模式
贡献者: Rector
352 热度

Understanding State Design Pattern By Implementing Finite State Machine In Super Mario Game

In object-oriented programming, State Pattern is one of the ways to implementFinite State Machines. This pattern falls underBehavioral Design Patterns.When in our software, an object can change betw...

收录时间: 2018-06-26
分类: 设计模式
贡献者: Rector
348 热度

设计模式(十四)—— 职责链模式

模式简介使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一个链,并沿着链传递该请求,直到有一个对象处理它为止。职责链模式是一种行为型模式,它包括命令对象以及一系列处理对象。每个处理对象决定它能够处理哪些命令对象,将不能处理的命令对象传递至职责链中的下一个处理对象。想象一下公司的OA系统,提交请假单时系统会根据你的请假天数将申请单"交给"不同的人去审批,...

收录时间: 2018-06-24
分类: 设计模式
贡献者: Rector
AD 友情赞助