设计模式之日志工厂

在看supersocket都时候发现里面都日志接口使用了典型都工厂设计模式,在此总结一下基本都思路

1 首先我想创建一个实现某个接口的对象

2 我想使用一个工厂来创建这个接口对象

3 这个工厂需要实现该接口都类来生产该接口对象

代码是实现

比如:

1 定义一个接口

public interface ILog{

  Debug();

  Error();

}

2 定义工厂接口:目的很简单就是生产ILog对象

public interface ILogFacory{

  ILog GetLog();

}

3 使用Log4Net实现一个工厂

public Log4NetFactory:ILogFactory{

  //实现接口

  public ILog GetLog(){

    return new Log4Net();//生产一个满足ILog接口都对象

  }

}

4 定义实现ILog都类也是Log4NetFactory才能生产这种接口

public class Log4Net:ILog{

  public void Debug(){

  }

  

  public void Error(){}

  

}

//据以上代码其思路非常清晰直观,对满足接口的类扩展非常强悍

比如某一天我想实现一个向控制台输出日志都类,那么我只需要一个实现日志工厂都控制台工厂和实现日志都控制台日志

public class ConsoleLogFactory:ILogFactory

{

}

public class ConsoleLog:ILog{}

时间: 2024-12-19 15:33:02

设计模式之日志工厂的相关文章

设计模式之 简单工厂,工厂方法,抽象工厂

学习来源: C#设计模式,刘伟 创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展. 引言: 简单工厂(静态工厂) 1, 模式适用环境 工厂类负责创建的对象比较少,由于创建的对象较少 ,不会造成工厂方法中的业务逻辑太过复杂 客户端只知道传入工厂类的参数,对于如何创建对象 并不关心 2, 简单工厂(静态工厂)方法的缺点: 工厂类集中了所有产品的创建逻辑,职责过重,一旦 不能正常工作,整个系统都要受到影响 增加系统中类

【设计模式】简单工厂模式

以面向对象的思想和简单工厂模式,写一个C++计算器程序,代码如下: #include <iostream> using namespace std; class Operation { public: Operation(double left, double right) { lhs = left; rhs = right; } const double GetLeft() const { return lhs; } const double GetRight() const { retur

设计模式之简单工厂模式

设计模式之简单工厂模式 动机:         不暴露实例化逻辑来创建对象.通过公共的接口创建新的对象.         这是一个简单的实现,客户端需要一个product,但是client不直接使用new对象,而是通过提供需要的对象信息来找factory得到新的product.         这个factory实例化一个具体的product并返回(转化成抽象的类),client段使用这个抽象的类而不用考虑它具体的实现. 应用举例:        也许工厂模式是使用最多的模式之一.举个例子,一个

设计模式之抽象工厂模式

抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 最大的好处便是易于交换产品系列,由于具体工厂类,在一个应用中只需在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需改变具体工厂即可使用不同的产品配置. 他使具体创建实例的过程与客户端分离,客户端是通过它们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离. 下面的代码还使用了反射与XML. 代码如下: using System; using System.Collections.Ge

初识设计模式之--简单工厂

作为一个刚刚入门的菜鸟.虽只学到了些许编程语言的皮毛(或者连皮毛都算不上),但是随着时间和学习的深入,"设计模式"这一专业术语便慢慢浮现在眼前. 到底何为设计模式呢?它的出现将会给我们带来哪些帮助?......等等一系列问题便会出现在我们脑海中.俗话说:问题才是探究知识的钥匙.就让我们带着 自己的疑问一同来学习设计模式. 首先,我们先来认识一下什么是设计模式,以及运用设计模式的优点. 设计模式的简单理解:模式是在某一背景下某个问题的一种解决方案.1.复用解决方案——通过复用已经公认的设

设计模式之抽象工厂模式20170803

创建型设计模式之抽象工厂模式: 一.含义 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类. 具体来说, 为一组具有相同约束(属性)的对象,提供一个接口,这个接口下有不同的实现,每个实现类对应一种类型的约束(一种具体的属性),同时提供该类型的约束(属性)下所有对象的创建方法 二.代码说明 1.主要有两个角色 1)一组互相影响的产品线(对象),也叫做产品族 2)抽象工厂类及其实现类 抽象工厂类:在N个产品族中,在抽象工厂类中就应该有N个创建方法 实现类:具体实现类是产品族的具体

每天一个设计模式-1 简单工厂

每天一个设计模式-1  简单工厂 1.简单工厂的定义 提供一个创建对象实例的功能,而无须关心其具体实现(核心). 虽然不能让模块外部知道模块内部的具体实现,但模块内部是可以知道具体实现类的.干脆在模块内部建一个类,用这个类来创建接口,然后把创建号的接口返回给客户端:这样,外部应用就只需要根据这个类来获取相应的接口对象,通过这个接口对象就可以操作接口定义的方法了.显然,这个类就像一个工厂,专门用来生成(生产)需要的接口对象. 2.简单的例子 说明: 代码: Api:接口,wear是一个公有方法.

设计模式Java之工厂方法。

1,工厂方法: 使用一个工厂的方法来创建产品. 1 package WHP; 2 //产品依赖于抽象 3 public interface IRunable { 4 public void Run(); 5 } 1 package WHP; 2 //具体实现 3 public class Car implements IRunable { 4 public void Run(){ 5 System.out.println("Car running."); 6 } 7 } 1 packa

设计模式初探—简单工厂模式

为什么要学习设计模式? 可重用.可维护.可扩展.灵活性好 什么是简单工厂模式? 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 简单工厂模式的好处? (1)将具体业务和实现进行分离 (2)将多个具体业务之间进行解耦 解决的问题? 单独的类来创造