随笔分类 - 设计模式
摘要:单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。对于单一职责原则,其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。专注,是一个人优良的品质;同样的,单一也是一个类的优良设计。交杂不清的职责将使得代码看起来特别别扭牵一发而动全身,有失美感和必然
阅读全文
摘要:1、FACTORY-追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说"来四个鸡翅"就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2、BUILDER-MM最爱听的就是"我爱你"这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个
阅读全文
摘要:为什么要用抽象工厂模式?在工厂模式中,一个具体的工厂类负责创建一个单独的产品,如果有2个不同的产品,就需要2个不同的工厂类,即使这2个产品有某些必要的关系。所以针对多个系列产品,就应该使用抽象工厂模式。既工厂模式是一个产品一个工厂类,二抽象工厂模式是一系列产品一个工厂类。定义:如果客户端需要创建一些产品结构,而这些结构又分别属于不同的产品类别,则可以使用抽象工厂模式。抽象工厂模式中抽象工厂负责创建对象的接口,这一系列对象的创建工作由实现工厂的具体工厂类来实现。原理:4部分组成:抽象工厂类,具体工厂类,抽象类和具体类。代码实现薪资程序:Salary.csnamespace AbstractFac
阅读全文
摘要:为什么要使用工厂模式简单工厂模式把对象的创建和初始化工作和客户端分开了,实现了责任分配,但是所有对象的创建和初始化都集中在了这个具体的工厂类里,如果有很多对象创建,这个工厂类就很难维护。所以根据面向对象的思想,要继续改进职责的分配和封装。把每一个产品都有一个具体的工厂类创建,把简单工厂抽象成一个个小的工厂类。这个每个工厂类只负责单独对象的创建,职责变小了。定义:工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由实现抽象工厂的具体工厂类来实现。原理:工厂方法有4部分组成:抽象工厂类,具体工厂类,抽象类和具体类。代码实现薪资程序的设计:Factory.csnamespace Fa
阅读全文
摘要:背景讨论作为一个很典型的设计模式,Singleton模式常常被用来展示设计模式的技巧,并且随着技术的演进,.NET语言和Java都已经把经典《Design Patterns : Elements of Reusable Object-Oriented Software》中所定义的Singleton模式作了完善,例如C#可以通过这样一个非常精简但又很完美的方式实现了一个进程内部线程安全的 Singleton模式。C# 最经典Singleton模式的实现(Lazy构造方式)public class Singleton{ private static Singleton instance; // 唯
阅读全文