欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    (1) 模板方法設(shè)計模式

    模板方法( Method)模式的定義如下:定義一個操作中的算法骨架,而將算法的一些步驟延遲到子類中,使得子類可以不改變該算法結(jié)構(gòu)的情況下重定義該算法的某些特定步驟。它是一種類【行為型模式】。

    該模式的主要優(yōu)點如下:

    1. 它封裝了不變部分,擴展可變部分。它把認為是不變部分的算法封裝到父類中實現(xiàn),而把可變部分算法由子類繼承實現(xiàn),便于子類繼續(xù)擴展。

    2. 它在父類中提取了公共的部分代碼,便于【代碼復(fù)用】。

    3. 部分方法是由子類實現(xiàn)的,因此子類可以通過擴展方式增加相應(yīng)的功能,符合開閉原則。

    該模式的主要缺點如下。

    1.對每個不同的實現(xiàn)都需要定義一個子類,這會導(dǎo)致類的個數(shù)增加,系統(tǒng)更加龐大,設(shè)計也更加抽象,間接地增加了系統(tǒng)實現(xiàn)的復(fù)雜度。

    2. 父類中的抽象方法由子類實現(xiàn),子類執(zhí)行的結(jié)果會影響父類的結(jié)果,這導(dǎo)致一種反向的控制結(jié)構(gòu),它提高了代碼閱讀的難 度。

    3. 由于繼承關(guān)系自身的缺點,如果父類添加新的抽象方法,則所有子類都要改一遍。

    咱們寫一個例子:

    一個囚犯()的一天,起床 吃飯 勞動 吃飯 勞動 看新聞 吃飯 睡覺對于一個囚犯來說每天都是這樣來的。

    public abstract class Prisoner {
    				protected String name;
            /**
            * 勞動的方法
            */
            abstract void work();
            /**
            * 吃的方法
            */
            abstract void eat();
            /**
            * 看新聞
            */
            abstract void readNews();
            /**
            * 一天的生活
            */
            public void life(){
                    eat();
                    work();
                    eat();
                    work();
                    eat(); 
                    readNews();
            }
    }
    public class Star extends Prisoner{
            public Star(String name) {
            				this.name = name;
            }
            @Override void work() {
            				System.out.println(this.name + "一直很煩惱的干活!");
            }
            @Override void eat() {
            				System.out.println(this.name + "吃不下牢里的飯");
            }
            @Override
            void readNews() {
            				System.out.println(this.name + "一邊看新聞,一邊想選妃的輝煌時刻。");
            }
            }
    public class Visitor {
            public void visit(Prisoner prisoner){
                    System.out.println("我開始參觀體會囚犯的一天");
                    prisoner.life();
                    System.out.println("一天的參觀結(jié)束");
    

    面向步驟對象設(shè)計有什么_面向?qū)ο蟮脑O(shè)計有哪些步驟_面向步驟對象設(shè)計有幾種

    } public static void main(String[] args) { Prisoner wxf = new Star("張三"); Visitor jerry = new Visitor(); jerry.visit(wxf); } } //我開始參觀體會囚犯的一天張三吃不下牢里的飯 //張三一直很煩惱的干活! 張三吃不下牢里的飯 //張三一直很煩惱的干活! 張三吃不下牢里的飯 //張三一邊看新聞,一邊想選妃的輝煌時刻。一天的參觀結(jié)束

    這樣設(shè)計有什么好處:

    每一個子類都不需要關(guān)心每天的生活流程,因為法律已經(jīng)規(guī)定了。每一類人根據(jù)自己的特性、狀態(tài)需求完成自己的實現(xiàn)就好了。

    面向?qū)ο蟮脑O(shè)計有哪些步驟_面向步驟對象設(shè)計有幾種_面向步驟對象設(shè)計有什么

    java程序員必備的基礎(chǔ)知識_java面向?qū)ο笾O(shè)計模式(二)

    (2)策略設(shè)計模式

    策略設(shè)計模式有難度,可以不學(xué)

    聊一聊對象數(shù)組排序,要排序就要有個兩兩比較的過程。

    我們怎么比較兩個對象,取出每一個值進行比較也行,但是寫出的代碼不優(yōu)雅,還記得我們學(xué)過的equals方法嗎?

    我們既然能做等值比較,為什么不能做大小的比較呢?

    public class User {
            private String username;
            private Integer age;
            private Double height;
            public User(String username, Integer age, Double height) {
            this.username = username;
            this.age = age;
            this.height = height;
            }
            //get、set方法略
            @Override
            public String toString() {
                    return "User{" +"username='" + username +
                    '\'' + ", age=" + age +
                    ", height=" + height + '}';
            }
            public static void main(String[] args) {
                    User	user1	=	new User("小王",12,153.4);
                    User	user2	=	new User("小李",14,163.4);
                    User	user3	=	new User("小張",13,123.4);
                    User	user4	=	new User("小楊",42,126.4);
                    User[] users = {user1,user2,user3,user4};
                    for (int i = 0; i < users.length-1; i++) {
                            for (int j = 0; j < users.length - i -1; j++) {
                                    if(users[j].age > users[j+1].age){
                                    User temp = users[j];
                                    users[j] = users[j+1];
                                    users[j+1] = temp;
                                    }
                            }
                    }
                    for (int i = 0; i < users.length; i++) {
                    System.out.println(users[i]);
                    }
            }
    }
    //結(jié)果沒問題:
    

    面向步驟對象設(shè)計有什么_面向?qū)ο蟮脑O(shè)計有哪些步驟_面向步驟對象設(shè)計有幾種

    //User{username='小楊', age=4, height=6.4} //User{username='小王',age=12,height=153.4} //User{username='小張',age=13,height=123.4} //User{username='小李',age=14,height=163.4} //這樣有什么問題啊, public class User implements Comparable { private String username; private Integer age; private Double height; public User(String username, Integer age, Double height) { this.username = username; this.age = age; this.height = height; } //get、set方法略 @Override public String toString() { return "User{" + "username='" + username + '\'' + ", age=" + age + ", height=" + height + '}'; } public static void main(String[] args) { User user1 = new User("小王",12,153.4); User user2 = new User("小李",14,163.4); User user3 = new User("小張",13,123.4); User user4 = new User("小楊",4,6.4); User[] users = {user1,user2,user3,user4}; for (int i = 0; i < users.length-1; i++) { for (int j = 0; j < users.length - i -1; j++) { if(users[j].compare(users[j+1]) > 0){ User temp = users[j]; users[j] = users[j+1]; users[j+1] = temp; } } } for (int i = 0; i < users.length; i++) { if(users[j].compare(users[j+1]) > 0){ User temp = users[j]; users[j] = users[j+1]; users[j+1] = temp; } } } for (int i = 0; i < users.length; i++) { System.out.println(users[i]); } } @Override public int compare(Object object) { if(object instanceof User){ User user = (User)object; if(this == user){ return 0; } else { if(this.getAge() > user.getAge()){ return 1;

    面向步驟對象設(shè)計有幾種_面向步驟對象設(shè)計有什么_面向?qū)ο蟮脑O(shè)計有哪些步驟

    } else if (this.getAge() < user.getAge()){ return -1; } else { return 0; } } } return -1; } }

    對于上邊的編寫代碼的方式,我們看看有沒有什么值得優(yōu)化的地方?

    如果我們想修改比較的內(nèi)容,就必須修改User類,這很明顯違反了開閉原則。

    1、User不變

    2、寫一個比較器的接口

    public interface Comparator {
    				int compare(User user1,User user2);
    }

    3、寫一個比較器

    public class UserAgeComparator implements Comparator	{
    				@Override
            public int compare(User user1, User user2) {
            				return user1.getAge() - user2.getAge();
            }
    }

    4、寫一個工具類專門給User排序

    public class SortUtil {
            public void sort(User[] users, Comparator comparator){
                    for (int i = 0; i < users.length-1; i++) {
                            for (int j = 0; j < users.length - i -1; j++) {
                                    if(comparator.compare(users[j],users[j+1]) > 0){
                                    				User temp = users[j];
                                    				users[j] = users[j+1];
                                    				users[j+1] = temp;
                                    }
                            }
                    }
            }
    }

    5、排序開始

    public static void main(String[] args) {
            User user1 = new User("小王",12,153.4);
            User user2 = new User("小李",14,163.4);
            User user3 = new User("小張",13,123.4);
            User user4 = new User("小楊",4,6.4);
            User[] users = {user1,user2,user3,user4};
            new SortUtil().sort(users,new UserAgeComparator());
            for (int i = 0; i < users.length; i++) {
            				System.out.println(users[i]);
            }
    }

    它好在哪里了呢?

    如果將來我們需要按照身高或者其他的方式排序呢?

    我們再寫一個排序的比較器就行了:

    public class UserAgeComparator implements Comparator{
            @Override
            public int compare(User user1, User user2) {
            				return user1.getAge() - user2.getAge();
            }
    }

    同時User也不需要直接實現(xiàn)某些接口,是不是很棒。

    其實我們還能結(jié)合我們超級數(shù)組來使用,大家不妨試一試。

    win10共享打印機找不到打印機 找不到打印機設(shè)備解決

    在Windows 10系統(tǒng)中,有時候共享打印機可能無法在網(wǎng)絡(luò)中顯示,導(dǎo)致打印機無法使用。這通常會讓人感到非常困擾,但幸運的是,這個問題有很多可以嘗試的解決方法。本文將介紹一些常見的原因以及針對性的解決步驟,幫助你快速解決Windows 10共享打印機找不到的問題。

    一、檢查打印機共享設(shè)置

    首先,確保打印機的共享功能已正確啟用。沒有正確設(shè)置打印機共享功能時,其他電腦是無法檢測到該打印機的。

    步驟:

    1. 在安裝打印機的電腦上,打開“控制面板”。

    2. 選擇“設(shè)備和打印機”。

    3. 右鍵點擊你要共享的打印機,選擇“打印機屬性”。

    4. 在彈出的窗口中,切換到“共享”選項卡。

    5. 勾選“共享此打印機”選項,并為打印機設(shè)置一個共享名(最好簡潔明了)。

    二、更新打印機驅(qū)動程序

    過時或損壞的打印機驅(qū)動程序也是導(dǎo)致共享打印機無法連接的常見原因之一。我們可以嘗試使用打印機衛(wèi)士更新打印機驅(qū)動程序來解決這個問題。

    打印機衛(wèi)士(官方版)

    打印機共享器驅(qū)動_打印機共享驅(qū)動找不到_找不到驅(qū)動 共享打印機

    智能修復(fù)打印機問題,自動安裝打印機驅(qū)動

    立即下載

    好評率97%

    下載次數(shù):3665356

    步驟:

    1. 在打印機正常連接到電腦的前提下,打開打印機衛(wèi)士,點擊“立即檢測”。

    2. 如果顯示打印機問題需要處理,點擊“一鍵修復(fù)”。

    3. 等待修復(fù)成功后,重啟打印機,讓新版驅(qū)動正常生效。

    三、確保網(wǎng)絡(luò)發(fā)現(xiàn)已開啟

    在Windows 10中,網(wǎng)絡(luò)發(fā)現(xiàn)功能決定了你的電腦是否能夠看到其他設(shè)備,包括共享的打印機。如果網(wǎng)絡(luò)發(fā)現(xiàn)沒有啟用,打印機將無法被其他電腦檢測到。

    步驟:

    找不到驅(qū)動 共享打印機_打印機共享驅(qū)動找不到_打印機共享器驅(qū)動

    1. 打開“控制面板”,點擊“網(wǎng)絡(luò)和共享中心”。

    2. 在左側(cè)欄選擇“更改高級共享設(shè)置”。

    3. 確保“打開網(wǎng)絡(luò)發(fā)現(xiàn)”和“打開文件和打印機共享”選項被選中。

    4. 點擊“保存更改”以確保設(shè)置生效。

    四、檢查防火墻設(shè)置

    防火墻設(shè)置也有可能會干擾打印機共享的正常工作。Windows防火墻默認情況下會阻止一些打印機共享協(xié)議。為了確保共享打印機的連接沒有被防火墻攔截,可以暫時禁用防火墻進行測試。

    步驟:

    1. 打開“控制面板”,點擊“Windows 防火墻”。

    2. 在左側(cè)欄選擇“啟用或關(guān)閉Windows 防火墻”。

    3. 在公用網(wǎng)絡(luò)和私人網(wǎng)絡(luò)下都選擇“關(guān)閉Windows 防火墻(不推薦)”。

    4. 關(guān)閉防火墻后,再嘗試連接共享打印機。

    五、手動添加共享打印機

    打印機共享驅(qū)動找不到_打印機共享器驅(qū)動_找不到驅(qū)動 共享打印機

    如果上述方法都無法解決問題,你可以手動添加共享打印機。

    步驟:

    1. 打開“控制面板” > “設(shè)備和打印機”。

    2. 點擊“添加打印機”。

    3. 在彈出的窗口中,選擇“我想要的打印機不在列表中”。

    4. 選擇“通過TCP/IP地址或主機名添加打印機”。

    5. 輸入共享打印機的IP地址或者主機名,完成添加。

    以上就是win10共享打印機找不到打印機的解決方法,希望對你有幫助。如果有遇到打印機連接、共享、報錯等問題,可以下載“打印機衛(wèi)士”進行立即檢測,只需要一步便可修復(fù)問題,提高大家工作和打印機使用效率。

    打印機衛(wèi)士(官方版)

    智能修復(fù)打印機問題,自動安裝打印機驅(qū)動

    立即下載

    好評率97%

    下載次數(shù):3665356

    win10共享打印機共享打印機找不到打印機找不到打印機設(shè)備共享打印機

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有