定   义:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,

           不会影响到使用算法的客户。

示例:商场收银系统,实现正常收费、满300返100、打8折.......等不同收费方式

效果图:

设计模式:策略模式(Strategy)

结构图

设计模式:策略模式(Strategy)

HTML代码

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>设计模式:策略模式</title>
    <style type="text/css">
        table
        {
            width: 300px;
            height: 250px;
            border-collapse: collapse;
        }
        table, tr, td
        {
            border: 1px solid gray;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <table>
        <thead>
            <tr>
                <td colspan="3">
                    商场收银软件
                </td>
            </tr>
        </thead>
        <tr>
            <td>
                单价:
            </td>
            <td>
                <asp:TextBox runat="server" ID="txtPrice"></asp:TextBox>

            </td>
            <td>
                <asp:Button runat="server" ID="btnOK" Text="确定" onclick="btnOK_Click" />
            </td>
        </tr>
        <tr>
            <td>
                数量:
            </td>
            <td>
                <asp:TextBox runat="server" ID="txtNumber"></asp:TextBox>
            </td>
            <td>
                <asp:Button runat="server" ID="Button1" Text="重置" onclick="Button1_Click" />
            </td>
        </tr>
        <tr>
            <td>
                计算方式:
            </td>
            <td>
                <asp:DropDownList runat="server" ID="ddlCashType">
                    <asp:ListItem Selected="True">正常收费</asp:ListItem>
                    <asp:ListItem>打8折</asp:ListItem>
                    <asp:ListItem>满300返100</asp:ListItem>
                </asp:DropDownList>
            </td>
            <td>
            </td>
        </tr>
        <tr>
            <td colspan="3">
                <asp:TextBox runat="server" ID=txtMsg TextMode="MultiLine" Rows="8" Columns="30"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                总计:
            </td>
            <td>
                <asp:Label runat="server" ID="lblTotal"></asp:Label>
            </td>
            <td>
            </td>
        </tr>
    </table>
    </form>
</body>
</html>
View Code

相关文章: