首页 > 代码库 > wcf之二(接口契约式编程思想)

wcf之二(接口契约式编程思想)

Wcf编程之二(接口契约编程)

简述

                   任务理解接口式编程,定义一个接口是为了遵循中规范,便于程序的扩展。接口是一种能力也是一种约定。1、接口不可以被实例化 2、实现类必须实现接口的所有方法(抽象类除外)3、接口可以实现多继承 4、接口中可定义属性。

实例

         打印机需要墨盒和纸张。墨盒有黑白、彩色。纸张有A4 B5.打印机怎么实现对不同纸张好墨盒打印的呢?接口契约式编程,打印机执行定义纸张接口和墨盒接口两个约定。纸张厂家和墨盒厂家只需遵循约定就可有打印。

代码

接口契约墨盒

public interface IInkBox

    {

       string getColor();

    }


纸张

public interface IPaper

    {

       string getSize();

    }


遵循约定纸张厂家造纸 A4 B5两种纸张

 

 class A4Paper:IPaper

    {

        public stringgetSize()

        {

            return "A4Paper";

        }

    }

 

  class B5Paper:IPaper

    {

        public stringgetSize()

        {

            return "B5Paper";

        }

    }

墨盒厂家遵循约定墨盒黑白 彩色

class ColorBox:IInkBox

    {

        public stringgetColor()

        {

            return "彩色";

        }

    }

 

class GrayBox:IInkBox

    {

        public stringgetColor()

        {

            return "黑白";

        }

}


打印机类

  class Printer

    {

        public voidgetPrinter(IInkBox box, IPaper paper)

        {

            Console.Write("用{0}墨盒,纸张{1}",box.getColor(),paper.getSize());

        }

    }


 

打印机实现打印不同纸张和不同颜色的方法   staticvoid Main(string[]args)

 

      {

            GrayBox gray = newGrayBox();

            A4Paper A4 = new A4Paper();

            ColorBox colorBox = newColorBox();

            B5Paper B5 = new B5Paper();

            Printer printer = newPrinter();

           printer.getPrinter(gray,A4);//打印机厂商给出一个约定,纸张和墨盒厂商遵循

            Console.WriteLine();

           printer.getPrinter(colorBox,B5);

            Console.Read();

        }


总结

         可以看出面向契约式编程,非常编译程序的扩展。如果又需要打印其他的纸张,执行遵循纸张接口就可以了。

 

wcf之二(接口契约式编程思想)