当前位置:  技术问答>java相关

《Java 与模式》c#的部分改写(I)

    来源: 互联网  发布时间:2017-03-21

    本文导语:  本来在看GOF的书,越看越觉得晦涩难懂,《Java与模式》给了我一本极好的入门教材(就是太贵,买书都心疼),我没有学过JAVA,不过觉得C#也就和JAVA差不多的,便试着改写一部分的示例代码,基本上我都调试过,不...

本来在看GOF的书,越看越觉得晦涩难懂,《Java与模式》给了我一本极好的入门教材(就是太贵,买书都心疼),我没有学过JAVA,不过觉得C#也就和JAVA差不多的,便试着改写一部分的示例代码,基本上我都调试过,不过因为初入门,也许有理解的不对的地方,希望大家多指教,谢谢!!
Simple Factory (简单工厂模式)
           由一个工厂类根据传入的参数决定创建出哪一个类的实例。
          
           参与者:
           1,Creator (工厂类)
                  是工厂模式的核心。客户端调用该类创建产品,是一个具体的类。
            2,Product (抽象产品)
                  抽象类或是接口,定义所有产品共有的方法和属性。
            3,ConcreteProduct (具体产品)
                  
          示意性代码:
           Creator
                    public class Creator
                    {
                          //静态工厂方法,定义成静态,后面调用不需实例化该类
                          public static Product factory(string which)
                          {
                               if(which==ConPro1)
                               {
                                       return new ConcreteProduce1();
                               }
                               else if (which==ConPro2)
                               {
                                       return new ConcreteProduce2();
                               }
                          }
                    }  

             Product
                   public interface  Product
                   {
                   }

             ConcreteProduct
                   public class ConcreteProduct1: Product
                   {
                           public ConcreteProduct(){}
                   }

                   public class ConcreteProduct2: Product
                   {
                           public ConcreteProduct(){}
                   }

             客户端调用:
                  public class Client
                  {
                       creator.factory("ConPro1") ;
                       creator.factory("ConPro2");
                  }

Factory Method (工厂方法)
        定义一个创建产品对象的工厂接口,将实际的创建工作推迟到子类中完成。在简单工厂模式中,如果有新产品,则必须修改工厂类的逻辑等,但好处在于无需大动客户端。工厂方法模式是对简单工厂模式的抽象和推广。

        参与者:
        *1,Creator (抽象工厂)
              接口或是抽象类,是Factory Method模式的核心,与应用程序无关。
        2,ConcreteCreater (具体工厂)
              含有与应用密切相关的逻辑,并受到应用程序的调用以创建产品。
        3,Product (抽象产品)
              接口或是抽象类。
        4,ConcreteProduct (具体产品)

              示意性代码:
              Creator
                      public interface Creator
                      {
                             //工厂方法
                             public Product factory();
                      }
              
              Product
                      public interface Product
                      {
                      }

              ConcreteCreator1
                      public class ConcreteCreator1 : Creator
                      {
                             //工厂方法
                             public Product factory()
                             {
                                    return new ConcreteProduct1();
                             }
                      }

               ConcreteCreator2
                      public class ConcreteCreator2 : Creator
                      {
                             //工厂方法
                             public Product factory()
                             {
                                    return new ConcreteProduct2();
                             }
                      }

               ConcreteProduct1
                      public class ConcreteProduct1 : Product
                      {
                            public ConcreteProduct1()
                            {  ...   }
                      }

               ConcreteProduct2
                      public class ConcreteProduct2 : Product
                      {
                            public ConcreteProduct2()
                            {  ...   }
                      }
                 
               客户端调用
                      public class Client
                      {
                            private static Creator creator1,creator2;
                            private static Product product1,product2;
                            public static void Main()
                            {
                                  creator1=new ConcreteCreator1();
                                  product1=creator1.factory();
                                  creator2=new ConcreteCreator2();
                                  product2=creator2.factory();
                            }
                      }

|
我考,C#和JAVA简直就一样啊

不过我觉得还是看看前11章吧,要不就被设计模式所左右了,看了,就可以左右设计模式了。不知对不对?

|
嗬嗬,有意思。。。

    
 
 

您可能感兴趣的文章:

  • 有c#了java是不是没有前途了?我该不该学java?
  • 听说C#已经有赶超java的趋势,java即将风光不再???
  • 请教各位,是JAVA有前途还是C#有前途?多谢!
  • 比较一下:JAVA和C#
  • 请问在工作岗位的朋友!使用java开发的公司对c#的态度如何?
  • 学java好,还是学C#好?
  • 一个在C#和java之间犹豫不决的人
  • Sun认为C#不会替代Java
  • 求系统安装盘下载地址,有C、JAVA编译器、文本模式即可 iis7站长之家
  • C#会让我们这些java程序员下岗吗?
  • 希望了解java,能推荐一个好的开发工具和一本好的入门书籍吗?我以前直到现在都在用VC,接下来想在C#和java中选一个做为第二语言。
  • js substr,substring与java substring和C# substring的区别解析
  • 浅谈Java与C#的一些细微差别
  • java与c#的语法区别详细介绍
  • (来者有分!!)关于下一代程序设计语言C#和Java的讨论
  • C#调用Java类的实现方法
  • C#调用Java代码的方法介绍
  • C#匿名委托和Java匿名局部内部类使用方法示例
  • 一个JAVA程序员在学习C#中的体会
  • 高分求c#和java精彩文档
  • JAVA/JSP学习系列之八(改写MySQL翻页例子)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java观察者模式概念及相关类介绍
  • Java设计模式之创建者模式简介
  • Java设计模式之适配器模式简介
  • Java设计模式之责任链模式简介
  • Java设计模式之中介者模式(Mediator Pattern)简介
  • 设计模式怎么放到Java类里面???
  • 起个贴子,大家伙来归纳一下Java本身设计中的设计模式
  • 微信公共平台开发模式(JAVA) SDK
  • Actor模式的Java实现 JActor
  • CS模式的集群的JAVA API norbert
  • 求系统安装盘下载地址,有C、JAVA编译器、文本模式即可
  • 什么是模式---《Java与模式》的作者:阎宏博士
  • Java单例模式实例简述
  • 实现b/s模式的ERP系统?应该使用java中的那些技术?
  • Java代码重构的几种模式详解
  • 哪里有java版的设计模式的电子书下载?
  • 哪有java版的设计模式方面的书可以下载呀?材料也可以呀
  • Java模式匹配库 JMatch
  • java设计模式之单例模式学习
  • Java设计模式之装饰者模式详解和代码实例
  • java中多点传送(同一个事件可同时传送给多个监听器对象corejava1例8.6)采用哪种设计模式谢谢
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3