zoukankan      html  css  js  c++  java
  • 设计模式引导 上海

    设计模式的概念已经在许多人的心里,有着高深莫测的伟大形象,当然国外的几个N人搞出了23个GOF设计模式,咱们就狠下心来学,说不定,某一天,我们CH人也能搞出几个更N的模式,不过重构好象重视的人不多,我建议设计模式和重构,可以交叉迭带里结合学习,毕竟这两本书是当世的惊世之作,好拉,废话少说,先来点简单点的,学习要循序渐进(江舟)
      下面举个简单的例子来说明一下简单工厂(不属于23“GOF”)
           在外国的名字里,有firstname,lastname之分,比如:MR JORN 或MR,JORN
                     注意两者之间用空格或“,“分开
       那么要对一个完整的名字进行分化,当然有很多简单的方法,我在这里只是举个例子,非小题大作嫌疑
        首先构造一个简单Base class
                 public class Namer
         {
             protected string frName, lName;
             public string getFrname()
             {
                 return frName;
             }
             public string getLname()
             {
                 return lName;
             }
         }
    然后派生两个方法类
          public class FirstFirst:Namer
         {
             public FirstFirst(string name)
             {
                 int i = name.Trim().IndexOf(" ");
                 if (i > 0)
                 {
                     frName = name.Substring(0, i).Trim();
                     lName = name.Substring(i + 1).Trim();
                 }
                 else
                 {
                     lName = name;
                     frName = "";
                 }
             }
         }
        public class LastFirst : Namer
        {
            public LastFirst(string name)
            {
                int i = name.IndexOf(",");
                if (i > 0)
                {
                    lName = name.Substring(0, i);
                    frName = name.Substring(i + 1).Trim();

                }
                else
                {

                    lName = name;
                    frName = "";
                }
            }
        }
    最后创建简单工厂
         public class NameFactory
        {
            public NameFactory() { }
            public Namer getName(string name)
            {
                int i = name.IndexOf(",");
                if (i > 0)
                    return new LastFirst(name);
                else
                    return new FirstFirst(name);
            }
        }

    怎么使用这个简单工厂呢
               public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {

            }

            private void button1_Click(object sender, EventArgs e)
            {
                NameFactory namefract = new NameFactory();
                Namer nm = namefract.getName(this.txtname.Text.Trim());
                this.txtfirstname.Text = nm.getFrname();
                this.txtlastname.Text = nm.getLname();
            }
        }
    虽然简单,但给入门的,可以说是个很好的引导。。。。。

  • 相关阅读:
    2021软件工程-第一周作业01准备工作
    String.matches()的用法
    Idea使用JSP出现404问题---已解决
    如何解决Tomcat启动闪退现象(环境配置没问题)
    解决启动java的web项目时端口占用问题
    IntelliJ IDEA 连接数据库 详细过程-包含使用jdbc连接数据库
    ApplicationContextAware接口认识
    RestTemplate 服务间接口调用
    maven相关
    FastJson:json字符串与Java对象转换
  • 原文地址:https://www.cnblogs.com/luozhai714/p/681220.html
Copyright © 2011-2022 走看看