搬砖方法论:分层策略

前言:当编写系统模块时,都会注意高内聚、低耦合、单一等等原则,虽然这些原则并非强制性,但是它对后续扩展有很好的指导性建议。但这些仅仅是微观上的,在宏观上也是需要类似这种指导性建议。这也是我们需要对架构 …

Read more

设计模式全家桶

前言:笔者在最初写程序的时候,常会遇到一些状况。 例如:更改一个字段或者添加一种小功能,就要把原来写过的东西废弃,重新大量更改以前写过的代码; 回顾很久以前编写的代码,完全找不到当时为什么这么写的原因 …

Read more

3-9设计模式之访问者模式(Visitor)

3.9.1 模式意图: 当我们已经含有固定的数据结构,但需要频繁的更改对数据操作的方式,如果将数据与行为放在一起,会影响数据所在对象结构的稳定性,增加操作的风险,这时可以使用访问者模式,使数据与操作行 …

Read more

3-8设计模式之观察者模式(Observer)

3.8.1 模式意图: 在系统中会有一些订阅发布性质的子系统,例如消息系统,用户订阅自己关注的消息,当关注的消息发出时,订阅者也会随之收到相应的推送通知。这也和生活中关注的频道相似,当频道更新时,总会 …

Read more

3-4设计模式之迭代器模式

3.4.1 模式意图: 系统中会有对集合的元素进行自增或者自减顺序的访问操作,对于这种需求我们可以使用迭代器模式来建立对应的迭代器,C#自带的IEnumerator也是利用了这种模式的特点。 3.4. …

Read more

3-2设计模式之状态模式(State)

3.2.1 模式意图: 根据对象内部状态的不同,而产生的不同行为,常规会直接采用if else语句,但是随着状态的增多,常规方式多会造成系统耦合度的增加,bug出现几率升高,当遇到这类情况时,可以使用 …

Read more

2-7设计模式之外观模式(Facade)

2.7.1 模式意图: 系统中常含有多个子系统,随着子系统不断增多,如果始终保持对子系统的直接调用,会明显提高业务逻辑和子系统间的耦合度,造成系统混乱,加大阅读困难,这时我们可以使用外观模式,用此模式 …

Read more

2-6设计模式之代理模式(Proxy)

2.6.1 模式意图: 在系统中有时需要对某对象创建时机进行约束;内容添加过滤行为;对象间接引用,想满足以上种种情况,但又不想破坏其原有功能结构,这时可以使用代理模式以替身方式来达到目的。 2.6.2 …

Read more

2-4设计模式之组合模式(Composite)

2.4.1 模式意图: 在处理树形结构数据时,通常必须区分叶节点和分支节点。这使代码更复杂,也更容易出错。组合模式模糊了叶节点和分支节点的概念,可以使叶节点和分支节点以单一对象的方式统一处理,且所有节 …

Read more

2-2设计模式之桥接模式(Bridge)

2.2.1 模式意图: 在实际开发中,如果仅仅关注对象间的协作,随着系统的不断壮大,对象之间的耦合度会逐渐增大,维护成本也会随之增高。所以我们要从关注对象间的协作,转变为关注它们间的关系、及其组成模型 …

Read more

1-5设计模式之建造者模式(Builder)

1.5.1 模式意图: 当面临一个复杂对象的创建时,通常由各个子对象按照一定的顺序组合而成;随着需求的不断变化,复杂对象对应的各个子对象也随之变化,但组合顺序相对稳定。我们需要将一个复杂的构建与其表示 …

Read more